Maison >développement back-end >C++ >Pourquoi les noms de classes injectés sont-ils nécessaires en C ?

Pourquoi les noms de classes injectés sont-ils nécessaires en C ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-20 14:22:10505parcourir

Why are Injected Class Names Necessary in C  ?

Noms de classe injectés en C : dévoiler leur objectif

En C, un nom de classe injecté fait référence au phénomène où le nom d'une classe est injecté dans son propre périmètre. Cette fonctionnalité soulève des questions sur sa nécessité et ses origines.

Objectif des noms de classe injectés

Le nom de classe injecté garantit que dans le corps de la classe, le nom de classe fait toujours référence à la classe actuelle, même si une autre classe portant le même nom est déclarée dans la portée englobante. Prenons l'exemple suivant :

void X() { }
class X {
public:
  static X create() { return X(); }
};

Dans le code ci-dessus, le but du nom de classe injecté est de faire la distinction entre la création d'un objet X temporaire et l'appel de la fonction X. Au niveau de l'espace de noms, la fonction create() appellerait la fonction X, tandis que dans le corps de la classe, le nom de classe injecté garantit qu'il fait référence à la classe elle-même.

Signification dans les modèles de classe

Les noms de classe injectés sont également utiles dans les modèles de classe. Ils permettent d'utiliser le nom de la classe sans spécifier de liste d'arguments de modèle, ce qui facilite la référence à l'instanciation actuelle. Par exemple, au lieu d'utiliser Foo, vous pouvez simplement utiliser Foo.

Introduction et terminologie

Le concept de noms de classe injectés existait dans C 98, mais la terminologie a été introduite dans C 03. C 98 y faisait référence comme "l'insertion d'un nom de classe dans la portée de la classe elle-même. » C 03 a inventé le terme « nom de classe injecté ».

Conclusion

Les noms de classe injectés sont une fonctionnalité précieuse en C qui garantit la recherche de noms propres dans les classes et simplifie syntaxe pour les modèles de classe. Comprendre leur objectif et leur évolution historique améliore la maîtrise de la programmation C.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn