【发布时间】:2014-12-04 19:09:58
【问题描述】:
我期待“我的游戏”打印出来,但我得到的是“基础” 只有在类内部使用方法时才会发生这种情况。
#include <iostream>
namespace Monster { class App {
public:
App(){}
~App(){}
void run(){
this->speak();
}
void speak(){
std::cout << "Base" << "\n";
};
};}; // class / namespace
class MyGame : public Monster::App {
public:
MyGame(){}
~MyGame(){}
void speak(){
std::cout << "My Game" << "\n";
};
};
int main(){
MyGame *child = new MyGame;
child->run();
return 0;
}
【问题讨论】:
-
然后将
speak变成virtual函数 -
是的,做到了。显然需要阅读更多关于 C++ 的内容
-
还阅读了新的 C++11 关键字“覆盖”。非常有用。
标签: c++ class inheritance methods