Implémentation de fournisseur de classe
Les classes peuvent être implémentées pour imposer un protocole.Ces classes sont appelées « classes abstraites » car aucun objet du type de classe ne peut être créé.Elles existent uniquement pour la dérivation.
Les classes sont des classes abstraites si elles contiennent des fonctions virtuelles pures ou si elles héritent des fonctions virtuelles pures et fournissent une implémentation pour elles totale.Les fonctions virtuelles pures sont des fonctions virtuelles déclarées avec le spécificateur (= 0), comme suit :
virtual char *Identify() = 0;
La classe de base, Document, peut appliquer le protocole suivant pour toutes les classes dérivées :
Une fonction appropriée d' Identify doit être implémenté.
Une fonction appropriée d' WhereIs doit être implémenté.
En spécifiant ce protocole lorsque vous concevez la classe d' Document , le concepteur de classes peut être sûr qu'aucune classe non abstraite ne peut être implémentée sans Identify et WhereIs s'exécute.La classe d' Document contient, par conséquent, ces déclarations :
// 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;
};