- 155 名前:133 mailto:sage [2012/05/13(日) 21:44:24.51 ]
- >>137
12クラスの多重継承を行った、とでも言うのでない限り、>137が>133(12バイトも増えた)の原因とは考えにくい 元クラスA,Bおよび派生クラスCそれぞれで仮想関数を使ってねえが そう考えると、2クラスの多重継承で12 バイト増える説明がつく。 それぞれのクラスが仮想関数テーブルへのポインタを含むから、4*3で12バイト増。 (これは>138のサンプルでf(), g()にvirtualを付けると検証できる。 また、強いて言えば>137のサンプル(仮想関数抜き)で どうして>133の多重継承理由(他のクラスでも使うから)になるのかわからん 別にMSを擁護するわけではないが、interfaceの多重継承みたいなことをしたいのだとすれば 基底クラスは必ずポインタ1個分(今日日のPCなら4バイト)の領域を占めるから、>140のような最適化の出番はない、 ハズ
|

|