Seu diagrama de herança se parece com o seguinte:
Concrete
|
D
/ \
C B
/ \
A A
Quando você tenta converter seu Concrete*
em um A*
, o compilador não tem idéia de qual instância de A
você quer. Você quer converter para o A
este C
deriva de ou do A
este B
deriva de?
A solução é usar a herança virtual para derivar B
e C
a partir de A
, para que exista apenas uma instância de A
.
Concrete
|
D
/ \
C B
\ /
A