Sdílet prostřednictvím


Chyba kompilátoru C2584

'Třída' : přímá základna 'Base2' je nepřístupná; základ "Base1"

Poznámky

Class již odvozuje přímo z Base1. Base2 odvozuje také z Base1. Class nelze odvodit z Base2 důvodu, že by to znamenalo dědění (nepřímo) znova Base1 , což není legální, protože Base1 již je přímou základní třídou.

Příklad

Následující příklad vygeneruje 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();
};