この章では抽象クラスについて説明します。
今までのクラスを使ったプログラムではクラスのデータメンバやメンバ関数の内容を初めからきっちり決めて目的のプログラムを作成してきましたが、抽象クラスは文字通り抽象的な親クラスを作って、子クラスで具体的なプログラムを行っていきます。
抽象クラスで宣言をした関数は必ず子クラスで定義を書かなくてはいけないので(定義を書かないとエラー)、メンバ関数の入れ忘れなども防ぐことが出来ます。 親クラスのgetPoint関数は関数の宣言だけをして、子クラスで関数の内容を具体的に定義しています。 つまり、親クラスのメンバ関数は、宣言だけで中身がなく、関数の具体的な処理の記述は子クラスに任せると言うことです。
ですので、親クラスで純粋仮想関数を宣言すると子クラスではと宣言すると共に具体的な中身を書かなくてはいけません。 この例では以下の部分が純粋仮想関数の具体的な中身を記述した箇所です。 その場合には以下の子クラスの宣言の中でも関数の宣言を行うことが必要です。 そして、それぞれの宣言をした関数の中身を子クラスで書いていくことになります。
カテゴリー