仮想関数
仮想関数(virtual function)とは、オブジェクト指向プログラミングにおいて用いられる派生クラス(子クラス)でその機能を上書き(オーバーライド)されるメンバ関数、即ちメソッドです。
子クラスのインスタンスを基本クラス(親クラス)へのポインタへ代入した場合、その親クラスのポインタから仮想関数を用いると、上書きされて、子クラスの関数が実行されます。これによって、クラスの多態性、ポリモーフィズムが実現されます。メインの処理にて、行う処理が「親クラスへのポインタから仮想関数を実行する」ことのみであっても、それぞれの子クラスが自身の持つ仮想関数を実行しますので、メインの記述は同じであるにもかかわらず、子クラス固有の様々な処理を実行してくれます。
親クラスの関数が自身の関数を呼び出す場合でも、呼び出す関数が仮想関数であれば、子クラスでオーバーライドされている場合、子クラスの関数が実行されます。