समस्या: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
/* ... */
};
स्थान दिया पर, जीसीसी शिकायत है कि यह बेस समारोह कॉल(), अर्थात डिफ़ॉल्ट निर्माता से मेल नहीं कर सकते हैं। लेकिन सी बेस से सीधे प्राप्त नहीं होता है, केवल ए और बी के माध्यम से, तो जीसीसी यहां शिकायत क्यों करता है?
विचार? टीआईए /रोब
संकलन नहीं RTTI सेट के साथ किया जाता है, हो सकता है? – Robert
नहीं, विरासत एक संकलित समय की बात है, आरटीटीआई की आवश्यकता नहीं होगी। – GManNickG