C++ Modèles
Les modèles sont la base de la programmation générique, qui est une manière d'écrire du code indépendant de tout type spécifique.
Un modèle est un plan ou une formule pour créer des classes ou des fonctions génériques. Les conteneurs de bibliothèque, tels que les itérateurs et les algorithmes, sont des exemples de programmation générique, et ils utilisent tous le concept de modèles.
Chaque conteneur a une définition unique, commevectorNous pouvons définir de nombreux types différents de vecteurs, commevector <int>ouvector <string>。
Vous pouvez utiliser des modèles pour définir des fonctions et des classes. Voyons comment les utiliser.
modèle de fonction
La forme générale d'une définition de modèle de fonction est la suivante :
Ici, type est un nom de substitution pour le type de données utilisé par la fonction. Ce nom peut être utilisé dans la définition de la fonction.
Voici un exemple de modèle de fonction qui retourne le maximum de deux nombres :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Max(i, j): 39 Max(f1, f2): 20.7 Max(s1, s2): World
modèle de classe
Tout comme nous définissons des modèles de fonctions, nous pouvons également définir des modèles de classes. La forme générale d'une déclaration de classe générique est la suivante :
template <class type> class class-name {
.
.
.
}
Ici,typeIl s'agit d'un nom de type de remplacement qui peut être spécifié lors de l'instanciation de la classe. Vous pouvez utiliser une liste séparée par des virgules pour définir plusieurs types de données génériques.
L'exemple suivant définit la classe Stack<> et implémente des méthodes génériques pour empiler et dépiler des éléments :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
7 hello Exception: Stack<>::pop(): empty stackautres extensions