Errore del compilatore C2584
'Class': la base diretta 'Base2' non è accessibile; già una base di 'Base1'
Class
deriva già direttamente da Base1
. Base2
deriva anche da Base1
. Class
non può derivare da Base2
perché ciò significa ereditare (indirettamente) di Base1
nuovo, che non è legale perché Base1
è già una classe base diretta.
Esempio
L'esempio seguente genera l'errore 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();
};