クラスBをクラスAに拡張してその関数をオーバーライドすると、(B *)のインスタンスを型(A *)のように送信するときに、クラスBで作成したオーバーライドを呼び出すことができますか?クラスインスタンスが送信されたときにオーバーライドされた型であるかのようにオーバーライドされますか?
1
A
答えて
4
A
のメソッドが仮想として定義されている限り、これはポインタと参照の両方に当てはまります。例えば、
class A {
virtual void Method() {
cout << "A::Method" << endl;
}
};
class B {
// "virtual" is optional on the derived method although some
// developers add it for clarity
virtual void Method() {
cout << "B::Method" << endl;
}
};
void Example1(A* param) {
param->Method();
}
void Example2(A& param) {
param.Method();
}
void main() {
B b;
Example1(&b); // Prints B::Method
Example2(b); // Prints B::Method
}
3
はい、機能がvirtual
宣言されている場合 - A内の関数がvirtual
宣言されている場合のみhttp://www.parashift.com/c++-faq-lite/virtual-functions.html
2
を参照してください。 virtual
と宣言すると、親クラスとしてキャストされていても、オーバーライドされた子関数が呼び出されます。
関連する問題
- 1. オーバーライドされたCSSプロパティがキャンセルされたか、またはオーバーライドされましたか?
- 2. プロパティの型はオーバーライドされた型ではありません
- 3. スーパークラスではオーバーライドされますが、サブクラスではオーバーライドされませんか?
- 4. sass変数が1つのファイルにコンパイルされたときにオーバーライドされる
- 5. カスタムPage_ClientValidateは、updatepanelが使用されたときにオーバーライドされます。
- 6. JavaDocでオーバーライドされたメソッド
- 7. オーバーライドされたメソッドのリエントラントロック?
- 8. スーパークラスのオーバーライドされたプロパティ
- 9. フレックスモジュールのオーバーライドされたスタイル
- 10. serializable_hash superは、オーバーライドされたメソッドで定義されたオプションをどのように取得しますか?
- 11. オーバーライドされたメソッドの戻り値の型を変更するにはどうすればよいですか?
- 12. オーバーライドされたメソッドカントスロー例外
- 13. ツリービューは、オーバーライドされたコントロールテンプレート
- 14. オーバーライドされたメソッドが型パラメータを指定しない場合、オーバーライドできないのはなぜですか?
- 15. ZoneAwarePromiseがオーバーライドされました
- 16. この `/ error`エンドポイントはどのようにオーバーライドされますか?
- 17. LuisIntent属性はどのようにオーバーライドされますか?
- 18. C#からオーバーライドされオーバーロードされたF#メソッドを解決できません
- 19. Swift - AVPlayerがバックグラウンドモードでオーバーライドされたときに通知を送信するにはどうすればよいですか?
- 20. LinkedHashMap#キーがオーバーライドされたときに注文を保存しますか? (JAVA)
- 21. HWND_BROADCASTに送信されたメッセージは他のデスクトップに送信されますか?
- 22. Javascript HMTL、onclickイベントは、ボタンをクリックしたときに送信されますが、キーボードで入力が押されたときは送信されませんか?
- 23. CSSオーバーライド、最初にロードされたスタイルシート
- 24. メソッドはStringBufferとStringBuilderでオーバーライドされませんでしたか?
- 25. 解放されたインスタンスに送信されたメッセージ... @合成中に送信されましたか?
- 26. 生成されたメタタグをどのようにオーバーライドしますか?
- 27. 間違ったオーバーライドが呼び出されましたか?
- 28. オーバーライドされたメソッドの使用と拡張型
- 29. 電子メールクライアントから送信された音声や画像はどのように送信されますか?
- 30. TypeScriptのオーバーライドされたインターフェイスから型を自動的に推測する