Delen via


Compilerfout C2584

"'Klasse': de directe basis 'Base2' is ontoegankelijk; al een basis van 'Base1'"

Opmerkingen

Class is al rechtstreeks afgeleid van Base1. Base2 is ook afgeleid van Base1. Class kan niet afleiden van Base2 omdat dit zou betekenen dat (indirect) Base1 opnieuw wordt overgenomen, wat niet legaal is omdat Base1 dit al een directe basisklasse is.

Voorbeeld

In het volgende voorbeeld wordt C2584 gegenereerd.

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