class Hero
{
public:
Hero();
virtual int useAbility(){}
virtual int basicAttack(){}
int getHitPoints();
int getManaPoints();
void setHitPoints(int x);
void setManaPoints(int x);
protected:
unsigned int hitPoints;
unsigned int manaPoints;
private:
friend void printHero();
};无效类错误指针
class Mage : public Hero
{
public:
Mage();
int useAbility();
int basicAttack();
std::string getClassName();
protected:
private:
std::string className;
};
同为战士
int input;
void *actor;
cin >> input;
if(input == 1) actor = new Warrior;
if(input == 2) actor = new Mage;
printHero(actor.getClassName(),actor.getHitPoints(),actor.getManaPoints());
所以我宣布指针“演员”,我希望它成为一个指向一类,但显然这是行不通的。
我得到这个错误
请求成员调用“GetClassName”的“演员”,这是无级式“无效*”的
有一个'无效*没有方法'。 –
恕我直言 - 当程序员使用无效指针时,他们通常会做错事 –
查找抽象类 –