c ++ herencia virtual

Problema:

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 hacer coincidir la llamada a la función con Base (), es decir, el constructor predeterminado. Pero C no hereda directamente de la Base, solo a través de A y B. Entonces, ¿por qué gcc se queja aquí?

Ideas? TIA / Rob

Respuestas a la pregunta(3)

Su respuesta a la pregunta