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>
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
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!