名称
名称(name)简称名,由声明(declaration)引入程序,在程序中用于引用实体(entity)。当程序存在多个TU时,一个名可能在多个TU中使用,此时依赖于名的链接性(linkage),同一名可能引用不同的实体。
名有以下几种形式:
- 标识符(identifier)。
- 函数表示法中的重载运算符(overloaded operator)。例如:operator+
- 用户定义转换函数(user-defined conversion function)。例如:operator bool
- 带参数列表的模版。例如:vector<int>
- (C++11)用户定义字面量运算符(user-defined literal operator)。例如:operator "" _km
标识符是一种词法元素,名称则是一种句法元素。结合标识符中关于“非限定标识符表达式(qualified identifier expression)”的定义可以发现,并非所有的名都是标识符(上述2-5情况下的名不是标识符,但是具备标识符相同的功能),但所有的标识符都是名,即标识符是名称的一种形式(主要形式)。
当编译器在程序中发下未知名称时,它将通过名称查找(name lookup)过程,将此名称与引入此名的声明关联起来(模版中的依赖名称(dependent name)除外)。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:
https://blog.csdn.net/aponysos1214/article/details/149629792
