为了解决菱形问题,我们使用虚拟继承。
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++ 中解决钻石问题的现有解决方案背后的技术原因是什么,而不是第二个。改变基类的继承来解决派生类中的一些问题是不是很尴尬。
如果有人可以提供技术复杂性,那就太好了。谢谢。