c ++虚拟继承
问题:
class Base {public: Base(Base* pParent); /* implements basic stuff */};class A : virtual public Base {public: A(A* pParent) : Base(pParent) {} /* ... */};class B : virtual public Base {public: B(B* pParent) : Base(pParent) {} /* ... */};class C : public A, public B {public: C(C* pParent) : A(pParent), B(pParent) {} // - Compilation error here /* ... */};
在给定的位置,gcc抱怨它无法匹配函数调用Base(),即默认构造函数。但是C不直接从Base继承,只通过A和B.那么为什么gcc会在这里抱怨?
想法?TIA / Rob
波斯汪
收到一只叮咚
慕虎7371278
相关分类