私はこれを持っています
A
/ \
B C
\ /
D
Aには純粋仮想関数があり、次のようにプロトタイプ化されています。
virtual A* clone(void) const = 0;
BとCは実質的にAから継承します(class B: public virtual A
、class C: public virtual A
)
Bには、次のようにプロトタイプ化された仮想関数があります。
virtual B* clone(void) const {};
Cには、次のようにプロトタイプ化された仮想関数があります。
virtual C* clone(void) const {};
Dは、次のようにBとCの両方から継承しますclass D: public B, public C
。Dには、次のようにプロトタイプ化された仮想関数があります。
virtual D* clone(void) const {};
さて、コンパイルすると、次の6行のエラーが発生します。
error C2250: 'D' : ambiguous inheritance of 'B *A::clone(void) const'
この問題を解決する方法についてはおかしな考えはありません。
前もって感謝します。