I have the following codes:
main.cpp
swordsman.hCode:#include <iostream> #include <string> using namespace std; #include "player.h" int main() { string tempName; bool success=0; //flag for storing whether operation is successful cout <<"Please input player's name: "; cin >>tempName; // get player's name from keyboard input player *human; // use pointer of base class, convenience for polymorphism int tempJob; // temp choice for job selection do { cout <<"Please choose a job: 1 Swordsman, 2 Archer, 3 Mage"<<endl; cin>>tempJob; system("cls"); // clear the screen switch(tempJob) { case 1: /*error here*/ human=new swordsman(1,tempName); // create the character with user inputted name and job success=1; // operation succeed break; default: break; // In this case, success=0, character creation failed } }while(success!=1); return 0; }
The constructor is defined in swordsman.cpp as:Code:#include "player.h" class swordsman : public player // subclass swordsman publicly inherited from base player { public: swordsman(int lv_in=1, string name_in="Not Given"); // constructor with default level of 1 and name of "Not given" void isLevelUp(); bool attack (player &p); bool specialatt(player &p); /* These three are derived from the pure virtual functions of base class The definition of them will be given in this subclass. */ void AI(player &p); // Computer opponent };
I have a problem creating a swordsman object dynamically because apparently the constructor cannot be found. What am I doing wrong?Code:swordsman::swordsman(int lv_in, string name_in) { role=sw; // enumerate type of job LV=lv_in; name=name_in; // Initialising the character's properties, based on his level HPmax=150+8*(LV-1); // HP increases 8 point2 per level HP=HPmax; MPmax=75+2*(LV-1); // MP increases 2 points per level MP=MPmax; AP=25+4*(LV-1); // AP increases 4 points per level DP=25+4*(LV-1); // DP increases 4 points per level speed=25+2*(LV-1); // speed increases 2 points per level playerdeath=0; EXP=LV*LV*75; bag.set(lv_in, lv_in); }



LinkBack URL
About LinkBacks



Your compiler already knows what's wrong and you didn't tell us. 