クラスCがクラスBから継承し、Aで定義された仮想関数をオーバーライドすると仮定します。Cは関数をオーバーライドしません。タイプA *のポインタがタイプCのオブジェクトを指している場合、関数呼び出しはBでオーバーライドされたバージョンを使用しますか?マルチレベル継承C++
3
A
答えて
5
はい!
意味的には、C
は、その実装を暗黙的にB
から継承します。
具体的には、呼び出される仮想関数の実装は、最も派生したものです。
2
タイプAのポインタがタイプCのオブジェクトを指している場合、関数呼び出しはBでオーバーライドされたバージョンを使用しますか?
はい。あなたは試したことがありますが、その場合にはC.で仮想関数を実装していない限り、
0
はい関数呼び出しは、Bでオーバーライドされたバージョンを使用します、関数呼び出しはC.
関連する問題
- 1. C#のマルチレベル継承コンストラクタ
- 2. マルチレベル継承メンバアクセス
- 3. Doctrine2マルチレベルの継承
- 4. マルチレベルの継承エラー
- 5. C++多重継承/仮想継承
- 6. 継承 - ターゲット固有の継承クラスC#
- 7. C++エコシステムシミュレータ(継承)
- 8. C++の継承
- 9. C++の継承
- 10. C++継承 - QList
- 11. C++継承ポインタ
- 12. C++クラス継承
- 13. リンクエラーC++継承
- 14. 継承objective-c
- 15. マルチレベルの継承ジェネリック医薬品と春号 - Javaの
- 16. Pythonのインタフェースと継承を使用したマルチレベル抽象化
- 17. アンドロイドでマルチレベル継承を使用する方法
- 18. C#の継承/クラス
- 19. C++クラスの継承
- 20. C++テンプレートクラスの継承
- 21. C#CodeProvider:クラス継承?
- 22. C#インタフェースの継承
- 23. C# - 上級継承
- 24. C++の継承タイプ
- 25. C#Visual Basic継承
- 26. C++ - 多重継承
- 27. C++仮想継承
- 28. C++ shared_ptr継承メモリリーク
- 29. C++テンプレートクラスの継承
- 30. C++の継承エラー
のだろうか? –
@ChristianHackl私は、このような一見単純な質問を控えるのを留意しています。 C++には、UBが動作するように見えるかもしれないが、実際にはそうではないかもしれない多くのケースがあり、尋ねるのに傷つくことはありません:) – Quentin
@Quentin:はい、いいえ。より良い質問は、「それは私が試したときにそれを呼び出すが、その行動は保証されているのだろうか?」ということである。*それが立てば、質問は私にとっては宿題のように思える。 –