次の方法で共有


コンパイラ エラー C2584

'Class' : 直接ベース 'Base2' にアクセスできません。既に 'Base1' のベースです

注釈

Class は既に Base1 から派生しています。 Base2Base1 から派生しています。 ClassBase2 から派生できません。これは、再び (間接的に) 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();
};