Maison >développement back-end >C++ >Qu'est-ce qu'un nom de classe injecté et comment son utilisation a-t-elle évolué ?
Nom de classe injecté : objectif et évolution historique
La notion de nom de classe injecté fait référence à la déclaration implicite d'une classe au sein de sa propre portée. Cela permet au nom de classe d'être utilisé dans le corps de la classe pour faire référence à la classe elle-même, même en présence d'autres entités portant le même nom dans la portée englobante.
Objectif du nom de classe injecté
Le nom de classe injecté sert à plusieurs fins pratiques, notamment :
Introduction historique
Le concept d'un nom de classe injecté existait sous une forme avant même C . L'ARM (Ada Reference Manual) précisait que le nom de classe pouvait être utilisé dans le spécificateur de classe pour faire référence à la classe elle-même.
En C 98, le nom de classe injecté était implicitement inséré dans la portée de la classe. Cependant, la terminologie « nom de classe injecté » a été introduite en C 03 avec DR 147.
Exemple de cas d'utilisation
Considérez la classe suivante :
class X { public: static X create() { return X(); } };
Sans le nom de classe injecté, il ne serait pas clair si create() crée un objet X temporaire ou appelle la fonction X. Le Le nom de classe injecté garantit que dans le corps de X, le nom X fait toujours référence à la classe elle-même, levant ainsi l'ambiguïté de l'intention de create().
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!