名称

identifier  qualified-name operator-function-name conversion-function-name ~ class-name template-identifier template name qualified-class-name :: template name

备注

任何已声明的 identifier 即为一个 name。 限定名是使用范围解析运算符创建的名称。 请参阅限定名称。

operator-function-name 是以该形式声明的名称

operator operator-name**(** argument1 [ , argument2] );

有关 operator-function-name 的声明的详细信息,请参阅重载运算符

conversion-function-name 是用以下形式声明的名称

operator type-name**(** )

备注

在声明转换函数时,可以提供派生类型名称(如 char *)来替换 type-name

转换函数提供用户定义的类型之间的转换。 有关用户提供的转换的详细信息,请参阅转换

声明为 ~ class-name 的名称将成为类类型的对象的“析构函数”。 析构函数通常在一个对象的生存期的末尾执行清理操作。 有关析构函数的信息,请参阅析构函数

还提供了用于模板类型和模板函数的名称的多种形式。

模板标识符包括其后跟封闭模板参数列表的尖括号的模板类名称,该列表可能包括类型和表达式,具体取决于模板的声明方式。 template-identifers 的示例包括:

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

模板函数的限定名可以包含模板关键字。 名称中不允许出现模板关键字,除非在范围解析运算符后面(-> 运算符、. 运算符或限定名)。 以下为函数名称:

::template f<int> // f is a global template function
A::template g<100> //g is a template member function of class A

同样,可以用模块关键字指定类模块的名称(如果在其前面放置范围解析运算符或限定名前面)。 以下为类型的名称:

::template A<int> // equivalent to A<int>
Outer::template Inner<int> // equivalent to Outer::Inner<int>

有关模板的详细信息,请参阅模板

请参见

参考

主要表达式