Académique Documents
Professionnel Documents
Culture Documents
7.1 Introduction
Une solution pour éviter la duplication de codes pour des fonctions qui agissent sur
des arguments de type différents consiste à écrire une fonction générique.
2
7.3 Exemple (1)
Version 2 de la template
3
Exemple 2
Version 2 de minimum
4
Exemple 3
5
7.4 Modèle supportant les types multiples
template <class T1,class T2> <type valeur de retour > nom_fonction (parametres)
{
}
Le type de la fonction de retour peut évidement être T1 ou T2 ou un autre type
reconnu par le compilateur (int, long , .., ou une classe définie )
6
7.5 Exemple (1)
Attention du résultat!!
Le type du résultat est
le type du premier
argument de la fonction
7
7.5 Exemple (2)
8
7.6 Surcharge explicite d’une fonction générique
Il est possible de définir un modèle générique pour une fonction et prévoir une
version pour une configuration spécifique.
9
7.7 Exemple de surcharge d’une fonction générique
10
11
On souhaite empêcher la permutation de ville, il faudrait dans ce cas surcharger la
fonction permuter pour le type ville.
On aura donc :
12
7.8 Application
Programme de Tri.
13
14
Fonction main pour trier des éléments de type int
15
etudiant.h
16
17
7.9 Les modèles de classe
Les templates s’appliquent aussi pour les classes ce qui permet d’éviter la
duplication de code pour des classes similaires .
Exemple:
18
On peut les remplacer avec la template suivante:
19
20
7.10 Les arguments dans une template
21
7.11 Classe générique avec 2 types d’arguments
syntaxe:
Exemple
Template <class T1,class T2> class deux
{
private:
T1 a;
T2 b;
public:
deux(T1 a, T2 b)
{
this->a=a;
this->b=b;
}
};
22
23
24