純粋仮想関数
仮想関数を使うことで継承先で異なる振る舞いにすることが出来ました。
ただ継承元のクラスでは実装の必要のない継承を前提としたクラスを作りたい場合があります。
そんな時は純粋仮想関数を使うことで実装の無い仮想関数を作ることができます。
class Base { public: virtual void Print(void) = 0; };
このように virtual を付けた関数の定義を = 0 とすることで実装の無い関数。
純粋仮想関数
を定義できます。
純粋仮想関数を持つクラスは実体化することができません。
こういったクラスを抽象クラスと呼びます。
抽象クラスを継承したクラスでは必ず純粋仮想関数とした関数を実装する必要があります。
抽象クラスを使うことで振る舞いを継承先で切り替えることができるようになります。
そうやってハードウェアなどの固有の処理を継承先に任せることでマルチプラットフォームで動作するような実装も可能になります。
これらが使えることによるメリットはかなり大きいのでC++等のオブジェクト指向のプログラムでは積極的に取り入れていきましょう!
1 2