Implementace protokolu třídy
Vynucení protokolu mohou být implementovány třídami.Tyto třídy se nazývají "abstraktní třídy" protože žádný objekt typu třídy lze vytvořit.Existují výhradně pro odvození.
Třídy jsou abstraktní třídy, pokud obsahují čistého virtuální funkce nebo mohou dědit čistého virtuální funkce a neposkytují implementace pro všechny.Čistý virtuální funkce jsou virtuální funkce deklarované s čistého specifikátor (= 0), takto:
virtual char *Identify() = 0;
Základní třída Document, může uložit následující protokol na všechny odvozené třídy:
Vhodného Identify funkce musí být implementována.
Vhodného WhereIs funkce musí být implementována.
Zadáním těchto protokolu při návrhu Document třídy, Návrhář třídy možno bez nonabstract třídy provádět bez Identify a WhereIs funkcí.Document Třídy, proto obsahuje tato prohlášení:
// 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;
};