Problema:C++ eredità virtuale
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
/* ... */
};
Alla posizione data, gcc lamenta che non può abbinare la funzione di chiamata di Base(), vale a dire il costruttore di default. Ma C non eredita direttamente da Base, solo attraverso A e B. Allora perché gcc si lamenta qui?
Idee? TIA /Rob
compilazione è fatto con no-RTTI set, potrebbe essere un problema? – Robert
No, l'ereditarietà è una cosa in fase di compilazione, RTTI non sarà richiesto. – GManNickG