函数重载
- C语言:不支持 (报错:error 函数已有主体)
原因:函数符号的生成只依赖函数名。函数符号相同编译无法通过 - C++:支持
原因:函数符号的生成依赖 函数名+参数列表 。重载后的各函数符号不同。
函数重载特点:
函数名相同,参数列表不同,处于同一作用域。返回值不参与重载,重载函数调用类型要明确。
实例一:函数重载
规则1:函数名相同,参数列表不同
实例二:作用域限定
规则2:处于同一作用域
在main() 函数中声明 使得在main() 函数作用域下都使用 Compare_Int_Int 。
我们重载的函数是在整个文件中的全局作用域函数,在mian() 函数内部声明的是局部作用域的函数。根据“就近原则”(如果作用域重叠,先使用小作用域。如全局变量和局部变量同名,使用局部变量)。如果我们要想使用全局函数使用的方法调用。如下:
实例三:使用关键字 const 和 volatile
规则3:与const有关的几种特殊重载
- 参数 与 是同一种类型
使用 中的 查看类型信息
- 当使用指针或引用时,可以进行函数重载
如,以下编译器视为4个不同版本的函数重载
测试:
- 类成员重载
类中存在后置const的常函数,与普通类成员函数之间可以实现重载。
注:后置const作用在与this指针上,使其原本的 this 指针转变为 this指针,因此在声明为后置const的常对象中不可修改类成员变量(mutable与const_cast除外)。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/10120.html