前回の派生と継承のイメージを改めて記載する。2このような処理でのデータ構造は、次のようなイメージで表される。オブジェクトがあったが、それをひとまとめで扱いたいこともある。}}C++では、Personへのポインタの配列に代入する時、Student型ポインタは、その基底クラスへのポインタとしても扱える。クラスのデータして扱われる。このため、このプログラムを動かすと、以下のように、名前と年齢だけが3人分表示される。Person*型,Student*型を混在して保存をした。データを表示しても、所属・学年は表示されない。いう要素を追加し、type=1ならば、Student型として扱うようにしてみた。初期化といったことを記述する必要がある。派生したクラスの種類がいくつもあるのなら、型情報の代入は注意深く書かないとバグの元になるし、型に応じた分岐は巨大なものになるだろう。文が問題となっていた。Function)が使える。このような関数を、仮想関数と呼ぶ。プログラム上で見えないが、何らかの型情報をオブジェクトの中に保存してくれる。仮想関数が呼び出されると、その型情報を元に、ふさわしい関数を自動的に呼び出してくれる。いった極めて簡単に記述できるようになる。関数ポインタ仮想関数の仕組みを実現するためには、関数ポインタが使われる。;}仮想関数を使うクラスが宣言されると、一般的にそのコンストラクタでは、各クラス毎の仮想関数へのポインタのテーブルが型情報として保存されるのが一般的。仮想関数の呼び出しでは、仮想関数へのポインタを使って処理を呼び出す。このため効率よく仮想関数を動かすことができる。miniOrange。