next up previous contents
Next: Exemple : recherche linéaire Up: Liaison dynamique Previous: Liaison dynamique

Classes abstraites

Un classe abstraite est utilisée pour définir une interface. S'il s'agit réellement d'un interface, a priori on ne peut pas l'instancier: pour pouvoir être utilisée, il faut au moins avoir défini une implémentation pour cette interface, et dans ce cas on utilisera un pointeur sur cette interface initialisé à un objet correspondant à cette implémentation. Le C++ permet de définir une fonction virtuelle comme étant pure c'est-à-dire sans implémentation dans la classe. Si une classe a au moins une fonction virtuelle pure, elle considérée comme abstraite et on ne pourra créer d'objets de cette classe

 class base{
public:
  virtual void f()=0; // virtuelle pure
//...
};
base b;          //non : classe abstraite
base *pb;        //oui
base& g(base &); //oui
base  h(base  ); //non




Mon Oct 20 14:02:48 MET 1997