抽象クラスは、少なくとも1つの純粋仮想関数(pure virtual function)を含むクラスです。純粋仮想関数は、派生クラスで実装する必要がある関数であり、抽象クラス自体では実装されません。これにより、抽象クラスは直接のインスタンス化ができなくなります。代わりに、抽象クラスは派生クラスの基底クラスとして使用されます。
以下に、抽象クラスの定義と使用方法の例を示します。
上記の例では、AbstractClass
は抽象クラスとして定義されています。pureVirtualFunction
は純粋仮想関数として宣言されており、派生クラスで必ず実装する必要があります。一方、concreteFunction
は具象関数として実装されています。
ConcreteClass
はAbstractClass
を継承しており、pureVirtualFunction
をオーバーライドして実装しています。このように、派生クラスは抽象クラスの純粋仮想関数を必ず実装する必要があります。
main
関数では、抽象クラスのインスタンス化ができないことを確認するために、AbstractClass
のインスタンス化をコメントアウトしています。代わりに、ConcreteClass
のインスタンスを作成し、純粋仮想関数と具象関数を呼び出しています。
抽象クラスを使用することで、派生クラス間で共通のインターフェースや振る舞いを定義することができます。これにより、コードの再利用性や保守性が向上し、柔軟な設計が可能となります。
この記事では、C++における抽象クラスの基本的な使用方法を説明しました。抽象クラスはオブジェクト指向プログラミングの重要な概念であり、実際のプロジェクトで活用することができるでしょう。