類別通訊協定的實作
可以實作類別,來強制執行通訊協定。 這些類別稱為 「 抽象類別",因為可不建立類別型別的任何物件。 它們存在於僅供衍生。
類別是抽象類別,如果它們包含純虛擬函式,或如果他們繼承純虛擬函式,並為它們全體不提供實作。 純虛擬函式都是以宣告的虛擬函式純規範 (= 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;
};