共用方式為


編譯器錯誤 C2584

'Class' :無法存取直接基底 'Base2';已經是 『Base1』 的基底

備註

Class 已經直接從 衍生自 Base1Base2 也衍生自 Base1Class 無法衍生自 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();
};