第一个程序
class myClass
{
public:
myClass() {}
double func(double n) { return n; }
private:
int func(int n) { return n; }
};
int main()
{
myClass mc;
mc.func(7); //报错
return 0;
}
程序在编译的过程中会报错,而不是返回7,原因如下:
编译器在对func(7)这个调用进行决议时,主要做了三件事情,依次如下:
- 名字查找:在做其他事情之前,编译器会查找所有函数名为func的函数作为候选,查找时不受访问权限的限制ÿ