Ajouter un commentaire

fredericmazue

C'est tout ce qu'il y a de simple. Une fonction générique en C++ c'est une fonction patron, donc on utilise le mot clé template qui veut dire patron. Et au lieu de donner explicitement un type comme int ou float tu donne une lettre (la coutume veut T pour type) selon cette syntaxe:

template<class T> T mon_min (T a, T b)
{
   int Resultat;
   if (a < b)
      Resultat = a;
   else
      Resultat = b;
   return Resultat;
}

maintenant si je peux me permettre, ta variable Result est totalement inutile, et avec l'opérateur ternaire ? on peut raccourcir un peu le code

template<class T> T mon_min_bis (T a, T b)
{
   return a < b ? a : b;
}

Vive C++ :D

Et ça, ça marche avec tout type A CONDITION que le type dispose de l'opérateur <, ce qui est bien sûr le cas des types intégrés comme int ou float. Si tu veux faire le minimum de deux objets, alors la classe correspondante doit avoir un opérateur < défini.

Sinon le compilateur va t'envoyer à la face une floppée de messages d'erreurs parfaitement antipathiques :D

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 ZZZZZ  X   X   AA   ZZZZZ  ZZZZZ 
Z X X A A Z Z
Z X AAAA Z Z
Z X X A A Z Z
ZZZZZ X X A A ZZZZZ ZZZZZ