【发布时间】:2015-01-05 15:32:30
【问题描述】:
在以下课程中,我知道输出将是:
Func A 游戏
Func B 游戏
玩游戏
Func B 游戏
修复它是让 Game functionB() 成为虚拟,但我只是想知道为什么 rpg->functionB() 会调用 Game 类而不是 RPG 类中的方法?有人可以帮忙吗?
class Game {
public: Game() {};
void functionA() {cout << "Func A game" << endl;};
void functionB() {cout << "Func B game" << endl;};
};
class RolePlayGame: public Game {
public: RolePlayGame() {};
void functionB(){ cout << "Func B role play" << endl; };
};
int main(){
Game* g = new Game; Game* rpg = new RolePlayGame;
g->functionA();
g->functionB();
rpg->functionA();
rpg->functionB();
delete g;
delete rpg;
return 0;
}
【问题讨论】:
标签: c++ inheritance virtual