c++的名字查找

来源:互联网 发布:5g芯片 知乎 编辑:程序博客网 时间:2024/04/28 09:31

 

C++中,函数编译时检查过程如下:


第一步,执行名字查找(namelookup):在调用类中查找,并生成候选列表;若候选列表为空,再扩大查找范围(如名

 

字空间内,或父类);如此循环。如果最终无结果,那么抱歉,就会提示你“名字未能找到”;否则,编译器跳到第二步。

第二步,执行重载辨别(overloadresolution):如果第一步得到的候选者个数大于一,编译器将以传递给函数的参数及其

 

类型为依据,尝试找到最佳答案。如果无法据此确定最优者,就会报告“存在二义性调用”。

第三步,可见性检查(accessibilitychecking):编译器检查是否可真正执行调用(比如,被调用函数是否是私有的)。