6. 6 仮想関数
C++ には、演算子のオーバロード(overload of operator) という機能があります。これは同じ演算子や関数でも、引数の数や型によって、 その意味(実際の働き)を変えることが出来るという機能です。 あるいは意味は同じでも、引数の型によって、 実際の演算方法を別々に定義する、というような使い方をします。
関数については、このオーバロードとは少し違った機能があります。 つまり、名前と引数が同じでも、更にその中身を 「動的に変える」ことが出来ます。 そのような関数を仮想関数と言います。 外見が同じで中身が違うと いうことで、仮想的な関数という名前になっています。
ここで「動的に変える」というのは、呼ぶ方で同じ記述をしていても、それが呼ばれ る場合によって中身(呼ばれる先)が変るというような意味です。
何のためにこの仮想関数があるか、というと、「インタフェースを共有する」 ためと言われます。以下にもう少し説明を加えます。
