у меня есть это
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'
Ни хрена не придумал, как решить эту проблему.
Заранее спасибо.