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