Condividi tramite


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