Freigeben über


Klassen-Protokoll-Implementierung

Klassen können implementiert werden, um ein Protokoll zu erzwingen.Diese Klassen sind „abstrakte Klassen“ bezeichnet, da kein Objekt des Klassentyps erstellt werden kann.Sie sind nur für die Ableitung.

Klassen sind abstrakte Klassen, wenn diese rein virtuelle Funktionen enthält, oder wenn sie über rein virtuelle Funktionen erben und eine Implementierung nicht für alle bereitstellen.Reine virtuelle Funktionen sind die virtuellen Funktionen, die mit dem Bezeichner Rein (= 0) deklariert werden, wie nachfolgend veranschaulicht:

virtual char *Identify() = 0;

Die Basisklasse, erlegte, Documentkönnen Folgendes Protokoll alle abgeleiteten Klassen aufgeführt:

  • Eine entsprechende Identify-Funktion muss implementiert werden.

  • Eine entsprechende WhereIs-Funktion muss implementiert werden.

Durch das Angeben eines solchen Protokolls, wenn die Document-Klasse der Klassen-Designer kann gewährleistet werden entworfen, dass keine nicht abstrakte Klasse ohne Identify und WhereIs-Funktionen implementiert werden kann.Die Document-Klasse enthält daher diese Deklarationen:

// 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;
};

Siehe auch

Referenz

Übersicht über abgeleitete Klassen