Error del compilador C2584
'clase': no se puede acceder a la base directa 'base2'; ya es la base de 'base1'
Class
se deriva directamente de Base1
. La clase Base2
también se deriva de Base1
. Class
no se puede derivar de Base2
porque eso significaría heredarse (indirectamente) de Base1
otra vez, que no es válido porque Base1
ya es una clase de base directa.
Ejemplo
El ejemplo siguiente genera el error C2584.
// C2584.cpp
// compile with: /c
struct A1 {
virtual int MyFunction();
};
struct A2 {
virtual int MyFunction();
};
struct B1: public virtual A1, virtual A2 {
virtual int MyFunction();
};
struct B2: public virtual A2, virtual A1 {
virtual int MyFunction();
};
struct C: virtual B1, B2 {
virtual int MyFunction();
};
struct Z : virtual B2, virtual C { // C2584
// try the following line insted
// struct Z : virtual C {
virtual int MyFunction();
};