C++ primer 6.4.1重载与作用域

如果函数外部与函数内部有同名函数,在函数内部调用这个函数,外部函数会被隐藏,调用的是内部的同名函数
函数调用时,编译器会先找局部的哪个函数,一旦找到了对应名字的函数,编译器会忽略外部的同名函数

在C++中名字查找发生在类型检查之前

string read();
void print(const string&);
void print(double);
void fooBar(int ival) {
	bool read = false;//这个read在fooBar作用域内
	string s = read();//错误:此时调用的read()是函数内部的read是布尔值
	void print(int);//这个print是在fooBar作用域内
	print("Value:");//错误:这个调用在函数内部,外部的print(const string&)被隐藏
	print(ival);//正确调用的是print(int)
	print(3.14);//正确调用的是print(int),不会调用外部的print(double),传入的3.14会被隐式转换为int类型

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值