あなたの継承図は次のように見えます:
Concrete
|
D
/ \
C B
/ \
A A
あなたがあなたを変換しようとするとき Concrete*
に A*
, 、コンパイラにはどのインスタンスがわかりません A
あなたが欲しい。に変換しますか A
それ C
から派生します A
それ B
から派生?
解決策は、仮想継承を使用して導出することです B
と C
から A
, 、そのため、1つのインスタンスしかありません A
.
Concrete
|
D
/ \
C B
\ /
A