【发布时间】:2014-01-06 16:57:46
【问题描述】:
当我有这样的东西时,当我有a* mya=new c(); 并调用a->displayStuff 时,它调用Class a 方法,当virtual 在Class a 而不是Class b 中时,它调用@987654327 @ 方法。
由于Class c没有实现这个方法,这里应用的规则是什么?
class a
{
public:
void displayStuff() {}
//other methods
};
class b:public a
{
public:
virtual void displayStuff() {}
//other methods
};
class c:public b
{
//other methods
};
【问题讨论】:
-
您为什么要这样做?它只会让任何想要使用您的类层次结构的人感到困惑。记住,你应该假设一个挥舞斧头的疯子最终会支持它..!
-
我有一个考试,哦相信我,我们的教授会问我们这样的问题:)
标签: c++ class inheritance virtual-functions