【发布时间】:2014-01-17 11:39:44
【问题描述】:
我有:
class A
{
virtual void get();
}
class B: public A
{
void get();
}
class C: public B
{
void get();
}
和
int main()
{
B *i;
i = new C();
i.get();
return (0);
}
如果 A::get() 是虚拟的:
i.get() 调用 C::get()
如果 A::get() 不是虚拟的:
i.get() 调用 B::get()
我的问题是:
为什么我不需要在 B::get() 上加上 virtual 来使用 C::get() 和 B.get()?
【问题讨论】:
-
那不是真正的代码。
virtual get(); -
应该是 virtual int get() 之类的东西。
标签: c++ inheritance virtual