親メンバー関数内で使用される仮想関数の動作については疑問があります。C++親メンバー関数内の仮想関数の振る舞い
例
class A {
private:
vars;
virtual fn_v() {.....}
public:
fn_A() {
fn_v();
....
}
class B : public A {
....
public:
fn_v() {.....}
私は仮想関数の実装が呼び出されるBのオブジェクトからfn_A()
を呼びますか?
です。ポインターまたはベースの 'A'クラスへの参照を介して関数を呼び出しますか?このポインタまたは参照は実際には 'B'クラスのインスタンスへのポインタまたは参照ですか?その後、 'B :: fn_v'関数を呼び出す必要があります。 –
あなたはそれを試してみませんか? –
クラスBの汎用オブジェクトです。 – PSK