Condividi tramite


Errore del compilatore C2584

'Class': la base diretta 'Base2' non è accessibile; già una base di 'Base1'

Osservazioni:

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();
};