純粋仮想関数 【pure virtual function】
概要
純粋仮想関数(pure virtual function)とは、オブジェクト指向プログラミング(OOP)で用いられる特殊なメンバ関数で、実装が定義されておらず、サブクラス(子クラス/派生クラス)で実装を書かなければならないもの。クラスを構成するメンバ関数のうち、サブクラスで同じ関数を定義して処理内容を上書き(オーバーライド)できるものを「仮想関数」(virtual function)という。純粋仮想関数は仮想関数のうち、スーパークラス側には実装(具体的な処理内容を記したコード)が存在しないものを指す。
純粋仮想関数を持つクラスを継承したサブクラスには、純粋仮想関数の宣言通りの関数名、引数、返り値の型を持つメンバ関数を宣言し、処理内容を実装しなければならない。サブクラスに必ず実装しなければならない機能を指し示すために用いられる。
C++言語で用いられる概念で、メンバ関数の宣言に「virtual」キーワードを追加し、実装({}で括られたコード部分)を省略することで定義することができる。純粋仮想関数を含むクラスはそれ自体をインスタンス化することはできない。JavaやC#などの言語では「抽象メソッド」(abstract method)がほぼ同様の役割を果たす。
(2023.6.6更新)