class gamecore
{
public:
gamecore();
virtual ~gamecore();
void Moverole(hero& hero)
{
hero.Move();
}
protected:
private:
};
现定义一个函数,指向父类中的Move
magical mag("娜美");
gamecore gam;
gam.Moverole(mag);
cout << mag << endl;
在主函数中声明并调用该函数,并向Moverole中输入mag子类
class hero
{
public:
hero();
hero(const string& name);
virtual ~hero();
void Move(){cout << "默认英雄在移动" << endl;}
不做处理处理得时候Moverole指向父类中的Move,输出也是使用父类
class hero
{
public:
hero();
hero(const string& name);
virtual ~hero();
virtual void Move(){cout << "默认英雄在移动" << endl;}
在函数面前加上virtual表示函数可以进行重写
class fighter : public hero
{
public:
fighter();
fighter(const string& name);
virtual ~fighter();
void Move() override {cout << "战士《" << getname() << "》向敌人冲锋" << endl;}
override也表示,优先判断子类中的函数,进行重写