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