我阅读有关继承的,我有一个重大的问题,我一直没能解决几个小时:虚拟继承混乱
提供类Bar
是virtual
函数的类,
class Bar
{
virtual void Cook();
};
之间有什么不同:
class Foo : public Bar
{
virtual void Cook();
};
和
class Foo : public virtual Bar
{
virtual void Cook();
};
?谷歌搜索的时间和阅读有很多关于它的用途的信息,但没有人真正告诉我两者之间的区别,只是让我更加困惑。
我不打算回答,因为题材并不真的值得这么浅薄的处理:但是没有'virtual',从'Bar'继承的每个类都会有它自己的'Bar'副本,'virtual'最派生的类将只有一个'Bar'的副本。 –
尝试:[此搜索](http://stackoverflow.com/search?q=q =虚拟+继承+%5Bc%2B%2B%5D) –
[在C++虚拟基类?](http://stackoverflow.com/questions/21558/in-c-virtual-base-class) –