仮想関数テーブル
呼び出しの際には、d->f1() の呼び出しの際は、d の D::B1 vpointer をたどり、vtable から f1 のエントリーを調べ、ポインタを取り出してコードを呼び出す。
単一継承(あるいは、単一継承のみ可能な言語)の場合、vpointer が常に d の最初の要素にあれば(多数のコンパイラでそうなっている)、下記のような擬似 C++ のコードに簡略化できる。
より一般的なケースでは、上記のようなdの f1()、D::f2()、B2::f2() 呼び出しはより複雑なものとなる。
これに対して、d->f0() の呼び出しはもっと単純である: