Maison > développement back-end > C++ > Quel est le but et l'historique des noms de classes injectés en C ?

Quel est le but et l'historique des noms de classes injectés en C ?

Linda Hamilton
Libérer: 2024-12-16 07:16:11
original
468 Les gens l'ont consulté

What is the Purpose and History of Injected Class Names in C  ?

Nom de classe injecté en C : objectif et historique

C présente un concept intrigant connu sous le nom de nom de classe injecté. En injectant le nom de la classe dans sa propre portée, le langage garantit que la recherche de nom au sein de la classe trouve toujours la classe actuelle, même lorsque d'autres classes portant un nom similaire existent dans la même portée englobante.

Cette fonctionnalité devient cruciale dans les scénarios. comme ce qui suit :

void X() { }
class X {
public:
  static X create() { return X(); }
};
Copier après la connexion

La fonction create() construit-elle un objet X temporaire ou appelle-t-elle la fonction X ? Dans la portée globale, la fonction X serait appelée. Ainsi, le nom de classe injecté garantit que dans le corps de la classe X, le nom X fait toujours référence à la classe elle-même, évitant ainsi toute ambiguïté potentielle.

Le nom de classe injecté s'avère également bénéfique dans les modèles de classe, permettant à la classe modèle de être référencé sans spécifier d'arguments, simplifiant ainsi l'expression.

Bien qu'il soit conceptuellement présent dans C 98, le terme « nom de classe injecté » a été introduit dans C 03 (DR 147). Avant C 98, la spécification du langage ARM impliquait le concept mais manquait de terminologie spécifique.

Avantages du nom de classe injecté :

  • Clarté dans les membres Accès : Assure une identification précise de la classe au sein de la sienne scope.
  • Simplicité dans les modèles de classe : Facilite une référence pratique à l'instanciation de classe actuelle sans arguments de modèle.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal