Maison >développement back-end >C++ >Quel est le nom de la classe injectée en C et pourquoi est-il important ?
Le nom de classe injecté : son objectif et son historique
En C, une fonctionnalité particulière connue sous le nom de « nom de classe injecté » fournit un moyen pour accéder au nom de la classe actuelle dans sa portée. Cette fonctionnalité a trouvé sa place dans C 03, renforçant ainsi sa présence dans le langage.
Nécessité du nom de classe injecté
Le nom de classe injecté évite toute ambiguïté dans les situations où plusieurs les classes portant le même nom existent dans la même portée. Sans cette fonctionnalité, la recherche de nom au sein d'une classe pourrait potentiellement aboutir à une instance différente de la classe déclarée à un niveau supérieur.
Considérons l'exemple suivant :
void X() { } class X { public: static X create() { return X(); } };
Sans le nom de classe injecté , la fonction create() peut soit créer un objet temporaire de type X, soit invoquer la fonction X(), selon le contexte. Cependant, avec le nom de classe injecté, la recherche de nom commence dans la portée de la classe, garantissant que X fait toujours référence à la classe actuelle.
Nom de classe injecté dans les modèles
Un autre L'avantage du nom de classe injecté réside dans les modèles de classe. Il permet l'utilisation de Foo dans un modèle de classe (sans spécifier d'arguments de modèle), faisant référence efficacement à l'instanciation actuelle du modèle.
Historique du nom de classe injecté
Le concept de nom de classe injecté existait en C 98, mais la terminologie officielle a été introduite en C 03. La norme C 98 stipulait que le nom de classe est inséré dans la portée de déclaration et dans la portée de la classe. En C 03, cela était appelé « nom de classe injecté ».
Le nom de classe injecté remplit un objectif crucial en C , améliorant la lisibilité du code et résolvant l'ambiguïté dans les définitions de classe. Il reste une partie intégrante du langage, largement utilisé dans les bases de code C modernes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!