- 1.函数重载
- 2.重载解析(广义重载解析,包含很多步骤)
- 2.1.名称查找
- 2.1.1.限定查找与非限定查找
- 2.1.1.1.限定查找
- 2.1.1.2.非限定查找
- 2.2.狭义重载解析
- 3.函数相关的其他内容
- 不能基于不同的返回类型进行函数重载:本质上是因为调用函数的时候可以不接受它的返回值,这样就不知道调用哪个重载函数了,所以不支持基于不同的返回类型进行函数重载。
// 不支持如下的重载:
// 1.不能基于返回值进行函数重载
// 2.参数列表只看参数个数和类型是否相同,不看参数名称
int fun(int x)
{
}
double fun( int y)
{
}
2.重载解析(广义重载解析,包含很多步骤)
2.1.名称查找
2.1.1.限定查找与非限定查找
2.1.1.1.限定查找
::fun()限定从全局域查找,MyNS::fun()限定从MyNS查找。
2.1.1.2.非限定查找- 限定查找进行域的逐渐查找:
- 先在同级的域进行查找,找不到则到上一层域进行查找。所以如下代码g()调用的是MyNS::fun()
- 限定查找更可以看成是名称隐藏
- 查找通常只会在已声明的名称集合中进行:即同级查找的函数需要在调用之前,如下所示
- 实参依赖查找(ADL):只对自定义的类型生效
内容太多,见下一篇博客:
C++基础第6章:函数(3.1)——函数其他内容:内联函数



