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メソッド」を、取得
はありません。 –
IMHO - プログラマがvoidポインターを使用しているときに通常間違っている –
抽象クラスを検索 –