标签归档:lookup

[Cpp基础] [04] 名字查找与函数重载

名字查找

  • 当我们使用一个名字时,编译器就会向上查找名字的声明语句.变量名的查找和函数名的查找结果有一定区别.
    • 变量名查找:最终仅会确定唯一的对象,从内到外碰到的第一个名字将被使用.
    • 函数名查找:会先确定搜索域,然后按重载规则选择最有匹配. 搜索域包含一般scope和参数scope.
  • 常规搜索域确定:从当前作用域开始,逐层向上查找名字声明,名字首次出现的作用域就是常规搜索域
  • 对于函数调用的每个实参arg_i,其类型decltype(arg_i)及其所有基类所在的作用域都加入实参类型搜索域
  • 函数名和变量名都是名字,彼此可以相互hide.

重载匹配规则

Read More