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
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:
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
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