Maison > développement back-end > C++ > Comment les noms de classe dans les modèles de classe fonctionnent-ils sans paramètres de modèle ?

Comment les noms de classe dans les modèles de classe fonctionnent-ils sans paramètres de modèle ?

Patricia Arquette
Libérer: 2024-10-31 11:46:31
original
442 Les gens l'ont consulté

How do Class Names in Class Templates Work Without Template Parameters?

Noms de classe dans les modèles de classe sans paramètres de modèle

Considérons un modèle de classe défini comme suit :

<code class="cpp">template <typename E>
class Link {
public:
    E element;
    Link* next;  // No typename argument here
};</code>
Copier après la connexion

Le le code que vous avez fourni comporte ensuite un lien membre public* sans argument de nom de type. C'est ce qu'on appelle un « nom de classe injecté ».

Selon [temp.local], lorsque le nom de classe injecté est utilisé dans le cadre de la classe, il est équivalent au nom de classe suivi de crochets angulaires. contenant les paramètres du modèle de la classe. Dans ce cas, Link devient effectivement Link.

Par conséquent, l'expression Link* next au sein de la classe Link est équivalente à Link* next. Cette fonctionnalité pratique permet à la classe de se référencer en utilisant son nom complet sans spécifier explicitement les arguments du 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