Exood4 Studio - Video Game Development, Toulouse (France)
Exood4 Studios Exood4 Tutorials

   
L a n g a g e   C++

L e s   c l a s s e s   g é n é r i q u e s






Spécification d'une classe générique


 En C la notion de généricité peut être simulée par l'utilisation de macros et de remplacements symboliques (voir objets génériques en C). Le C++ possède un outil plus puissant, les templates, que l'on utilise par l'intermédiaire du mot-clé template.


Exemple :

template <class T>
class Pile
{
private :
 T *vecteur; // pile sous forme de tableau
 int taille; // taille max de la pile
 int sommet; // indice de sommet

public :
 Pile(int); // constructeur avec taille
 ~Pile(); // destructeur

 int vide ();
 T dernier ();
 void empiler (T);
 void depiler ();
 int getSommet ();
};


Implémentation d'une classe générique


template <class T>
Pile<T>::Pile (int max)
{
 vecteur = new T[max];
 taille = max;
 sommet = -1;
}

template <class T>
Pile<T>::~Pile ()
{
 delete vecteur;
}

template <class T>
void Pile<T>::empiler (T element)
{
 sommet++;
 vecteur[sommet] = element;
}

template <class T>
void Pile<T>::depiler ()
{
 sommet--;
}

template <class T>
T Pile<T>::dernier ()
{
 return (vecteur[sommet]);
}

template <class T>
int Pile<T>::vide ()
{
 return (sommet == -1);
}

template <class T>
int Pile<T>::getSommet ()
{
 return (sommet);
}

 Utilisation :

void main ()
{
 Pile <int> p1(5);
 Pile <point> p2(10);

 p1.empiler(12);

 point a(3.5, 5.2);

 p2.empiler(a);

 Pile <point *> p3(10);

 p3.empiler (new point(3.5, 5.2));

 cout << p1.getSommet() << "\n";
}


Téléchargez l'exemple



  Retour en haut de page Page suivante