2011-11-11 vtable COM C++ COMのバイナリ構造とC++の関係を確認するため、vtableのメモリレイアウトを調べました。 https://gist.github.com/1362138 仮想ではないメンバ関数はsizeofに影響しません。 仮想関数がない場合、インスタンスへのポインタからメンバ変数が入っています。 仮想関数がある場合、インスタンスへのポインタにはvtableへのポインタが入っていて、その次にメンバ変数が入っています。 継承するとvtableがあればポインタは差し替えられ、メンバ変数は後ろに追加されます。 仮想関数コールはvtableを読むラッパーを経由します。