为了解决钻石问题,我们选择虚拟继承。
class A {}
class B : virtual Public A {}
class C : virtual Public A {}
class D : public B, Public C {}
为什么不定义如下:
class A {}
class B : public A {}
class C : public A {}
class D : virtual public B, virtual public C {}
使用现有解决方案解决C ++中钻石问题的技术原因是什么,而不是第二个。 更改基类的继承以解决派生类中的某些问题是不是很尴尬。
如果有人可以提供技术错综复杂的话,那就太好了。 谢谢。