基本クラスが1つで、それから10種類のコンクリート派生クラスを派生させた場合、それぞれのコンクリート派生クラスはそれぞれ異なるvtableを持ちますか?派生コンクリートクラスのvtables
答えて
派生クラスが仮想メソッドをオーバーライド/宣言するかどうかによって異なります。
派生クラスの基本クラスまたはすべてに仮想関数がある場合は、通常はyesです。どうしてそれが重要ですか?
2つのクラスは、仮想関数のインテンシカルセットを持つ場合にのみvtableを共有できます。 派生クラスは、仮想関数をオーバーライドしない場合にのみ、基本クラスとvtableを共有できます。
派生クラスは、両方とも同じ基本クラスの関数をオーバーライドしない限り、他の派生クラスとvtableを共有できません。同様の方法で実装されていても、派生クラスのメンバ関数は別の派生クラスのメンバ関数とは異なる型です。
私はちょうど混乱していたすべての派生クラスは、単一のvテーブルを使用するか、彼らは別のものを持つだろう –
はい、実際にすべての派生クラスは、独自の仮想関数を乗り越えている基本クラスは純粋に抽象的なのでv表 –
vtableは、仮想関数のインテンシカルなセットを持つ場合にのみ共有できます。つまり、派生クラスは仮想関数をオーバーライドしない場合にのみ、基本クラスとvtableを共有できます。 –
- 1. コンクリートクラスから派生した抽象クラス
- 2. オブジェクト指向C:ビルディングvtables
- 3. 派生
- 4. 抽象クラスとコンクリートクラス?
- 5. 派生クラスのAssemblyInitialize
- 6. Pythonの:派生クラス
- 7. MySQLの派生テーブル
- 8. 派生クラスのObservableCollection
- 9. テーブルの派生ステータスフィールド?
- 10. シグモイドの派生語
- 11. のC#:派生クラス
- 12. クラスの派生 - ビジターパターン
- 13. 派生クラスカスタムシリアル化
- 14. C# - 派生クラス
- 15. 派生クラス
- 16. MySQL派生テーブルサブクエリ
- 17. は、派生クラス
- 18. 派生クラス
- 19. SSIS派生列
- 20. shared_from_this派生クラス
- 21. 派生型名
- 22. 派生クラス
- 23. FragmentActivity:派生クラス
- 24. 派生クラスC#
- 25. WPF派生グリッドコントロールコントロールテンプレート
- 26. 派生クラス
- 27. なっ派生
- 28. 派生クラス
- 29. 他の派生クラスから派生クラスメソッドにアクセスする方法
- 30. 派生ツリーと派生ツリーの関係は何ですか?
どの言語/ランタイム/コンパイラなど? –
私の推測はC++です。これは、仮想メソッドと非仮想メソッドの両方を持つ唯一の一般的な言語です。 – EFraim
なぜこのタグは主観的なものですか? –