登 录
今天帮同学解决一个多态问题。发现怎么也调不那那个虚函数。后来发现,此虚函数
在父类中有const参数,在子类中没有const参数。这就是说,子类根本没有重载
父类中的虚函数。自然就没有办法调用了。这么细小的问题,真的很难被发现。
测试代码如下
#include <iostream> using namespace std; class Tree { public: virtual void GetName(const Tree & tree); }; void Tree::GetName(const Tree & tree) { cout << "Const Tree" << endl; } class AppleTree : public Tree { public: void GetName(Tree & tree); }; void AppleTree::GetName(Tree & tree) { cout << "AppleTree" << endl; } int main() { Tree * aTree =new AppleTree; Tree tr; aTree->GetName(tr); system("pause"); return 0; }
结果:
Const Tree
const让我说你什么好呢?
抱歉!评论已关闭.