Udostępnij za pośrednictwem


Implementacja protokołu klasy

Klasy mogą być zaimplementowane, aby wymuszać protokół.Klasy te są nazywane "klasami abstrakcyjnymi", ponieważ żaden obiekt typu klasy nie może zostać utworzony.Istnieją wyłącznie do dziedziczenia.

Klasy są klasami abstrakcyjnymi, jeśli zawierają czyste funkcje wirtualne lub dziedziczą czyste funkcje wirtualne i nie dostarczają ich implementacji.Czyste funkcje wirtualne to funkcje wirtualne zadeklarowane za pomocą specyfikatora pure (= 0), w następujący sposób:

virtual char *Identify() = 0;

Klasa podstawowa Document, może nałożyć następujący protokół na wszystkie klasy pochodne:

  • Musi być zaimplementowana odpowiednia funkcja Identify.

  • Musi być zaimplementowana odpowiednia funkcja WhereIs.

Określając taki protokół podczas projektowania klasy Document, projektant klasy może mieć pewność, że żadna nieabstrakcyjna klasa nie zostanie zaimplementowana bez funkcji Identify i WhereIs.Dlatego klasa Document zawiera następujące deklaracje:

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

Zobacz też

Informacje

Przegląd klas pochodnych