抽象クラス (C++)
抽象クラスは一般的な概念を表現したもので、このクラスからより具体的なクラスを派生するために使用できます。 抽象クラス型のオブジェクトは作成できませんが、抽象クラス型へのポインターと参照は使用できます。
純粋仮想関数を 1 つでも含むクラスは抽象クラスと見なされます。 抽象クラスから派生したクラスは純粋仮想関数を実装する必要があります。つまり派生クラスも抽象クラスです。
仮想関数を "純粋" として宣言するには、pure-specifier 構文を使用します (「クラス プロトコルの実装」を参照)。 「仮想関数」に示されている例を考えます。 Account クラスの目的は一般的な機能を提供することですが、Account 型のオブジェクトは一般的すぎて役に立ちません。 したがって、Account は抽象クラスに適した候補です。
// deriv_AbstractClasses.cpp
// compile with: /LD
class Account {
public:
Account( double d ); // Constructor.
virtual double GetBalance(); // Obtain balance.
virtual void PrintBalance() = 0; // Pure virtual function.
private:
double _balance;
};
この宣言と前の宣言の唯一の違いは、PrintBalance が純粋指定子 (= 0) で宣言されていることです。