1

1 つの基本クラスがあり、そこから 10 個の異なる具体的な派生クラスを派生させた場合、すべての具体的な派生クラスはそれぞれ異なる vtable を持ちますか?

4

2 に答える 2

4

基本クラスまたはすべての派生クラスに仮想関数がある場合、通常はそうです。どうしてそれが重要ですか?

2つのクラスは、仮想関数の同一のセットがある場合にのみvtableを共有できます。したがって、派生クラスは、仮想関数をオーバーライドしない場合にのみ、vtableを基本クラスと共有できます。

派生クラスは、他の派生クラスとvtableを共有できません。ただし、両方が同じ基本クラスの関数をオーバーライドしない限り、同じ方法で実装されている場合でも、1つの派生クラスのメンバー関数は別の派生クラスのメンバー関数。

于 2009-08-02T12:03:26.950 に答える
0

派生クラスが仮想メソッドをオーバーライド/宣言するかどうかによって異なります。

于 2009-08-02T12:02:37.560 に答える