Supposons que vous souhaitez effectuer une fonction , Mult , qui multiplie deux nombres. Vous pouvez écrire une version distincte pour chaque type de données , qui est la surcharge de méthode , ou vous pouvez utiliser C + + des modèles de fonction et avoir une signature de fonction au lieu de trois . C + + des modèles de fonction automatiser type de remise , donnent à l'utilisateur de la bibliothèque puissance plus expressif et réduire le coût de la maintenance du code . Choses que vous devez
avancée C + +
compilateur C + + avec l'IDE , comme
de Bloodshed Voir Plus Instructions
1
surcharger une fonction qui multiplie les numéros de type int , float et double :
int Mult ( int a , int b ) {
retour (a * b); }
flotteur Mult (float a , float b ) {
retour ( un * b); }
deux Mult (le double a , double b ) {
retour (a * b); }
2
Faites la même chose que étape 1 n'a , en utilisant C + + des modèles de fonction : Template
T Mult (T a , T b ) {
retour (a * b); }
3
Comparaison Étape 2 à l'Étape 1. La ligne de code supplémentaire inséré au-dessus de la définition de fonction à l'étape 2 apparaît comme un bon compromis pour répéter le corps de la fonction deux fois ou plus .
4
Retourner au code de l'étape 2 . T est le typename . Le mot-clé de classe signifie que T peut prendre n'importe quelle identité . C'est un type générique que le compilateur interprète à la volée en fonction de ce paramètre l'utilisateur passe à elle. Donc T peut être un entier , un flotteur, un double ou une classe qui possède l'opérateur de multiplication définie , sinon l'opération de multiplication reste indéfini
5
tester en profondeur la signature de fonction qui utilise des modèles . . Effectuer des tests avec tous les types de données attendus pour s'assurer que vous n'obtenez pas de résultats inattendus.