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