函数重载
来源:互联网 发布:c语言完全数及其因子 编辑:程序博客网 时间:2024/05/07 13:50
以下可以视为重载:
int fun(int val, char* str);
char fun(char* str, int val);
这叫重复定义不是重载
int add(int x,int y);
float add(int x,int y);
重载:
仅返回值不同不形成重载。必须参数的个数或类型不同。对于类的成员函数,还有const性不同也能形成重载。另外,异常声明不同也不构成重载。
函数的重载是根据形式参数的个数或类型来的,不是根据返回值,企图根据返回值来实现重载会引起编译错误。
这些条件一个不相同那就是不同的函数,而能构成重载(即相同函数名不同函数实现)的有:条件2,条件3
一个理解原则:
哪些条件在函数运行之前需确定,那些就能构成的重载
因为重载解析,就是编译器在选择哪个函数实现被运行,这当然是在函数执行之前进行的了,所以
条件1函数返回值,是在函数运行之后才得到,所以并不能构成重载
条件4异常规范,也需函数运行之后,才能知道抛出不抛出异常,抛出什么类型的异常,所以也不能
参数类型并不完全一致的情况下,参数位置不同仍然可以构成重载
0 0
- 重载之函数重载
- 函数重载
- 重载函数
- 函数重载
- 函数重载
- 函数重载
- 函数重载
- 函数重载
- 函数重载
- 函数重载
- 函数重载
- 函数重载
- 函数重载
- 重载函数
- 重载函数
- 函数重载
- 重载函数
- 函数重载
- UML——部署图
- 360 2013-10-29面试
- 给2440板子装系统
- php 正则匹配utf8中文
- 引用数据类型的参数传递
- 函数重载
- iOS 7 适配
- js 传递参数
- [新手]搭建java,android开发环境及出错解决办法
- 多核时代 .NET Framework 4 中的并行编程9---线程安全集合类
- 隐马尔可夫模型(HMM)简介
- 拷贝构造函数
- UVa:991 Safe Salutations
- 成员函数的重载、覆盖与隐藏