다음을 통해 공유


컴파일러 오류 C2584

'Class': 직접 기본 'Base2'에 액세스할 수 없습니다. 이미 'Base1'의 기반입니다.

Class 이미 .에서 Base1직접 파생됩니다. Base2 에서 파생됩니다 Base1. Class는 이미 직접 기본 클래스이므로 다시 상속(간접적으로)Base1하는 것을 의미하기 때문에 Base1 파생 Base2 될 수 없습니다.

예시

다음 샘플에서는 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();
};