備忘録

政治/経済/自動運転/Python/Robotics

仮想関数

実行時ポリモーフィズムをサポートする。

関数オーバーロードに対して、仮想関数の再定義をオーバーライドと呼ぶ。

(0)派生クラスへのポインタ

  • 基本クラスのポインタとして宣言されたポインタは、派生したどのクラスを指し示すのにも使用できる
  • アクセスできるのは基本クラスから継承されたメンバに限られる

(1)仮想関数

  • 宣言時にvirtualキーワードを使用する
  • 基本クラスポインタを通じて仮想関数にアクセスするとき、オーバーライドされた仮想関数のどのバージョンが実行されるかは、指し示されたオブジェクトの型で判断される
  • その判断は実行時に行われる
  • オーバーライドしてない派生クラスでは、基本クラスで定義されたままの関数が使用される

(2)純粋仮想関数

  •  = 0; として宣言することでオーバーライドを保証させる