Ihr Vererbungsdiagramm sieht in etwa so aus:
Concrete
|
D
/ \
C B
/ \
A A
Wenn Sie versuchen, Ihre zu konvertieren Concrete*
In ein A*
, der Compiler hat keine Ahnung, welche Instanz von A
Sie wollen.Möchten Sie in die konvertieren A
Das C
leitet sich ab, oder die A
Das B
kommt von?
Die Lösung besteht darin, die virtuelle Vererbung zum Ableiten zu verwenden B
Und C
aus A
, so dass es nur eine Instanz von gibt A
.
Concrete
|
D
/ \
C B
\ /
A