Problema:C++ herencia virtual
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
/* ... */
};
en la posición dada, gcc se queja de que no puede coincidir con llamada de función a Base(), es decir, el constructor predeterminado. Pero C no hereda directamente de Base, solo a través de A y B. Entonces, ¿por qué gcc se queja aquí?
Ideas? TIA /Rob
compilación se realiza sin-rtti conjunto, podría ser un problema? – Robert
No, la herencia es una cosa de tiempo de compilación, RTTI no será necesaria. – GManNickG