Noms
identifier qualified-name operator-function-name conversion-function-name ~ class-name template-identifier template name qualified-class-name :: template name
Notes
Tout identifier qui a été déclaré est un name. Un nom qualifié est un nom composé à l'aide de l'opérateur de résolution de portée. Reportez-vous aux noms qualifiés.
Un operator-function-name est un nom qui est déclaré sous la forme
operator operator-name**(** argument1 [ , argument2] );
Consultez Opérateurs surchargés pour plus d'informations sur la déclaration d'un operator-function-name.
Un conversion-function-name est un nom qui est déclaré sous la forme
operator type-name**(** )
Notes
Vous pouvez fournir un nom de type dérivé comme char * à la place du type-name en déclarant une fonction de conversion.
Les fonctions de conversion fournissent des conversions vers et depuis des types définis par l'utilisateur. Pour plus d'informations sur les conversions fournies par l'utilisateur, voir Conversions.
Un nom déclaré comme ~ class-name est pris comme « destructeur » des objets d'un type classe. Les destructeurs effectuent généralement des opérations de nettoyage à la fin de la durée de vie d'un objet. Pour plus d'informations sur les destructeurs, consultez Destructeurs.
Il existe également plusieurs formes de noms utilisées pour les types de modèle et les fonctions de modèle.
Les identificateurs de modèle incluent le nom de classe de modèle suivi par des crochets pointus englobant la liste d'arguments template, laquelle peut inclure des types et des expressions, selon la façon dont le modèle a été déclaré. Voici des exemples de template-identifiers :
A<int> // class A takes a type as a template argument
A<int, char> // class A takes two types as template arguments
A<4> // class A takes an int as a template argument
A<> // class A is a template with a default argument
Les noms qualifiés des fonctions de modèle peuvent inclure le mot clé template. Le mot clé template n'est pas autorisé dans un nom à moins qu'il soit précédé par l'opérateur de résolution de portée, l'opérateur ->, l'opérateur . ou un nom qualifié. Voici des noms de fonctions :
::template f<int> // f is a global template function
A::template g<100> //g is a template member function of class A
De même, le nom d'un modèle de classe peut être spécifié à l'aide du mot clé template s'il est précédé de la résolution de portée ou d'un nom qualifié. Voici des noms de types :
::template A<int> // equivalent to A<int>
Outer::template Inner<int> // equivalent to Outer::Inner<int>
Pour plus d'informations sur les modèles, consultez Modèles.