La bibliothèque C ++ modèle

La bibliothèque standard C ++ fournit un ensemble complet de mathématiques, de temps, d'entrée / sortie, et les opérations DOS, pour ne nommer que quelques-uns. Bon nombre des premiers programmes que vous apprenez comme un débutant utiliser les fonctions de chaîne de caractères dits définies dans le fichier d'inclusion cordes.

Les types d'argument pour un grand nombre de ces fonctions sont fixés. Par exemple, pour les deux arguments strcpy (char *, char *) doit être un pointeur vers une chaîne de caractères terminée par null - rien d'autre sens.

Il ya des fonctions qui sont applicables à plusieurs types. Prenons l'exemple des humbles maximum () fonction, qui renvoie le maximum de deux arguments. Toutes les variations suivantes de sens:




int maximale (int n1, n2 int) - // retour max de maximum deux integersunsigned (u1 non signé, non signé u2) -double maximale (d1 à double, double d2) maximale -char (char c1, char c2) -

Ici, vous souhaitez mettre en œuvre maximum () pour les quatre cas.

Bien sûr, vous pourriez surcharger maximum () avec toutes les versions possibles:

à double maximale (d1 à double, double d2) {return (d1> d2)? D1: D2} int maximale (int n1, n2 int) {return (n1> n2)? n1: N2} maximale de char (c1 char, char c2) {return (c1> c2)? c1: c2 -} // ... répéter pour tous les autres types numériques ...

Cette approche fonctionne. Maintenant, C ++ sélectionne le meilleur match, maximale (int, int), pour une référence telle que maximale (1, 2). Toutefois, la création la même fonction pour chaque type de variable est une perte brute de temps.

Le code source pour tous les maximale (T, T) fonctions suit le même schéma, où T est l'un des types numériques. Il serait pratique si vous pourriez écrire la fonction une fois et laissez C ++ fournir le type T en fonction des besoins lorsque la fonction est utilisée. En fait, C ++ vous permet de faire exactement cela. Ils s'appellent définitions modèle.


» » » » La bibliothèque C ++ modèle