編譯器錯誤 C2584
'Class' : 直接基底類別 'Base2' 無法存取; 已經是 'Base1' 的基底類別
Class 已經直接從 Base1 衍生。 Base2 也已從 Base1 衍生。 Class 無法從 Base2 衍生,因為這樣一來就表示會再次 (間接) 從 Base1 繼承,這是不合法的,因為 Base1 已經是直接基底類別。
範例
下列範例會產生 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();
};