Modèle

Définition - Que signifie Template?

Un modèle est une fonctionnalité de programmation C ++ qui permet des opérations de fonction et de classe avec des types génériques, ce qui permet des fonctionnalités avec différents types de données sans réécrire des blocs de code entiers pour chaque type.

Les modèles sont un utilitaire précieux en C ++, en particulier lorsqu'ils sont utilisés avec la surcharge d'opérateurs et l'héritage multiple. Les modèles réduisent l'effort associé au codage de différents types de données en un seul ensemble de code et réduisent les efforts de débogage.

Definir Tech explique le modèle

C ++ fournit les deux types de modèles suivants utilisés pour implémenter des constructions générales, telles que des listes, des files d'attente, des vecteurs et des piles:

  • Modèle de classe: ressemble à une définition de classe ordinaire mais est préfixé par ce qui suit: template , suivie de la déclaration du corps de la classe, y compris les données et les fonctions des membres. Les déclarations et définitions des fonctions membres du modèle de classe se trouvent dans le même fichier d'en-tête. Les modèles de classes C ++ sont les mieux adaptés aux classes de conteneurs.
  • Modèle de fonction: implémenté via des paramètres de modèle, qui est un type de paramètre spécial utilisé pour passer un type en tant qu'argument de fonction. Ainsi, la fonctionnalité peut être adaptée à plus d'un type ou classe sans répéter le code entier. Le format pour déclarer un modèle de fonction avec un paramètre de type est soit un modèle déclaration_fonction ou modèle déclaration_fonction. Il n'y a aucune différence entre les mots-clés class et typename.

Les modèles nécessitent généralement une vérification de type au moment de la compilation.

Le code généré par un modèle peut être remplacé en fournissant des définitions spéciales pour des types spécifiques, ce qui est connu sous le nom de spécialisation de modèle. Une version spéciale d'une fonction pour un ensemble donné d'arguments de modèle est appelée spécialisation explicite. Un modèle de classe spécialisé par un sous-ensemble de ses paramètres est appelé spécialisation de modèle partiel. La spécialisation complète se produit si chaque paramètre est spécialisé.

Cette définition a été écrite dans le contexte de C ++