【发布时间】:2013-04-08 06:56:07
【问题描述】:
我有一个关于虚拟基类的问题。为了解决多重继承中的“死亡之钻”/歧义问题,引入了虚基类。
class A { public: void Foo() {} };
class B : public virtual A {};
class C : public virtual A {};
class D : public B, public C {};
当class C 声明中未使用关键字virtual 时会发生什么。能详细解释一下吗?
class A { public: void Foo() {} };
class B : public virtual A {};
class C : public A {};
class D : public B, public C {};
【问题讨论】:
-
旁注:使用组合而不是继承(使用基于组件的设计模式)
-
“死亡之钻”是 C++ 多重继承中的问题,而不是多重继承中的问题。
标签: c++ multiple-inheritance virtual-inheritance diamond-problem