基本プロトコルの実装
クラスは、プロトコルを強制するために実装できます。 これらのクラスは、クラス型のオブジェクトを作成できないため、"抽象クラス" と呼ばれます。 これらは、派生のためだけに用意されています。
クラスは、純粋仮想関数を含む場合、または純粋仮想関数を継承してそのすべての関数に実装を提供していない場合は、抽象クラスです。 純粋仮想関数は、次のように pure-specifier (= 0) で宣言された仮想関数です。
virtual char *Identify() = 0;
基底クラス Document は、すべての派生クラスに対して次のプロトコルを強制する可能性があります。
適切な Identify 関数を実装する必要があります。
適切な WhereIs 関数を実装する必要があります。
このようなプロトコルを指定して、Document クラスをデザインする場合に、クラス デザイナーで非抽象クラスを Identify 関数と WhereIs 関数なしでは実装できないよう保証できます。 したがって、Document クラスには、これらの宣言が含まれています。
// deriv_ClassProtocolImplementation.cpp
// compile with: /LD
class Document {
public:
// Requirements for derived classes: They must implement
// these functions.
virtual char *Identify() = 0;
virtual char *WhereIs() = 0;
};