컴파일러 오류 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();
};