指向类错误的无效指针

Void pointer to class error

本文关键字:无效 指针 错误      更新时间:2023-10-16
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());

所以我声明指针"actor",我希望它成为指向类的指针,但显然它不起作用。

我收到此错误

请求在"actor"中请求成员"getClassName",其非类类型为"void*">

战士和法师有父类人。

你想做:

person *actor;