>>414
仮想継承は菱形継承するときに使う。この場合だと、仮想継承しないと X オブジェクトの内部には
A オブジェクトが二つ含まれることになるが、仮想継承すると A オブジェクトが一つしか含まれな
くなる。

プログラミング言語 C++ に図入りで解説があるから、読んでみ。