Aracılığıyla paylaş


Derleyici Hatası C2584

'Class' : 'Base2' doğrudan tabanına erişilemez; zaten 'Base1' tabanı

Açıklamalar

Class doğrudan öğesinden Base1türetilir. Base2 ayrıca'dan Base1da türetilir. Classöğesinden Base2 türetilemez çünkü bu, doğrudan bir temel sınıf olduğu için Base1 yasal olmayan yeniden devralma (dolaylı olarak) Base1 anlamına gelir.

Örnek

Aşağıdaki örnek C2584 oluşturur.

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