仮想継承
仮想継承を解説する前に、C++での継承におけるクラス表現を簡単に説明しておく。継承は、メモリ上では親クラスの後に子クラスを置いたリストで表される。上記の Bat の場合、(Animal, Mammal, Animal, WingedAnimal, Bat) となり、Animal が二度出現しているため、曖昧さが生じる。