Il tuo diagramma di eredità assomiglia a questo:
Concrete
|
D
/ \
C B
/ \
A A
Quando provi a convertire il tuo Concrete*
in un A*
, il compilatore non ha idea di quale istanza A
tu vuoi. Vuoi convertirsi in A
Quello C
deriva da o dal A
Quello B
deriva da?
La soluzione è utilizzare l'eredità virtuale per derivare B
e C
da A
, in modo che ci sia solo un'istanza di A
.
Concrete
|
D
/ \
C B
\ /
A