La généricité pour les classes
 
 
 
 

Exactement comme pour les fonctions, une classe générique est paramétrée (mot-clé template) par un nom de type prédéfini (int, float ...) ou de classe créée par le programmeur.
 

Exemple:

template <class T>
class Pile {
public:
Pile();
~Pile();
void push(T x);
void pop();
}
 
 

 template <class T>
Pile<T>::Pile()
{
// une certaine implémentation
}
 

 
template <class T>
void Pile<T>::push(T x)
{
// une certaine implémentation
}
 
 
On aura ainsi construit une classe pile pouvant contenir divers types d'éléments.
 
 
 
 
 
 
 
 
 

Utilisation par
 

int main() {
Pile<int> p; int i=7;
// on vient de créer une pile d'entiers
p.push(5); p.push(3); p.push(i);
p.pop();
}
 
 

Il existe une librairie de templates, la librairie STL (pour Standard Template Library), contenant des implémentations des structures de données usuelles (comme Pile ici).

 
 
 

 retour vers la généricité pour les fonctions

Drupal 7 Appliance - Powered by TurnKey Linux