<C++>4.重载函数
来源:互联网 发布:网络代理app软件 编辑:程序博客网 时间:2024/05/17 06:48
C++重载函数
一、与C的对比说明:在c语言中,同一作用域内,函数名必须是唯一的,不允许出现同名的函数。但是在C++中,允许在同一作用域内可以定义同名的函数。
1、函数参数的类型不同。
2、函数参数的个数不同。
3、函数参数的类型不同,个数也不同。
当两个以上的函数共用一个函数名,但是形参的个数或者类型不同,编译器根据实参与形参的类型及个数的最佳匹配。,自动去调用适合的函数,这就是函数重载。被重载的函数称为重载函数。
1、int add(int i, int j);
2、int add(int i, int j, int k);
3、int add(float i, float j);
4、int add(double i, double j);
这四个函数均属于重载函数。
1、调用重载函数时,函数返回值类型不在参数匹配检查之列。所有,若两个函数只有返回值类型不同,则不允许重载。
例:
int add(int a, int b);
double add(int a, int b);
这两个函数不允许重载。
2、重载函数与带默认值的函数一起使用时,有可能引起歧义,避免使用。
例:
int add(int x=0, int y=0);
int add(int x);
若这样调用函数:add(10);两个函数都满足调用规则,但是系统不知道去调用哪一个函数,编译的时候就报错了。
3、在函数调用时,若给出的实参与形参类型不符,编译器会自动进行类型转换。在这种情况下,有可能产生编译器不知道调用拿个函数,就会报错。
例:
void add(int x);
void add(long x);
这样定义重载函数是没有问题的,只定义不调用或者add(3);这样调用,编译器是不会出错的,但是当add(3.14);这样调用就会出现问题,编译器无法确定将3.14转为int型还是long型。
阅读全文
0 0
- <C++>4.重载函数
- C/C++ 函数重载
- [c++]函数重载
- C++:函数重载
- Objective-C函数重载
- c++-函数重载
- C++-函数重载
- C++_函数重载
- 【C++】函数的重载
- 【C++】:C++函数重载
- [C++]函数重载
- C/C++函数重载
- <C++>_函数重载
- 【c++】函数的重载
- C/C++:C++函数重载
- 【C++】重载运算符和重载函数
- [C++]C++的函数重载
- C中没有函数重载!
- TCP/IP三次握手四次挥手
- Spring MVC 和 Spring 总结
- 编译OpenCV缺少python27_d.lib的解决方法
- 4. 数据结构进阶四静态查询之索引顺序查询
- LeetCode 516. Longest Palindromic Subsequence
- <C++>4.重载函数
- 区间dp
- 深度学习笔记: 稀疏自编码器
- 用@Resource注解来装配属性
- 2的幂次方表示
- 爬取需要登录的网站数据
- 用@Autowired 注解来装配属性、自动装配
- Unreal语音示例:讯飞在线语音听写UE4 Demo
- [USACO08NOV]玩具Toys [洛谷2917] [bzoj1229]