关于重载的概念和使用时的注意事项
来源:互联网 发布:淘宝秒杀助手官方下载 编辑:程序博客网 时间:2024/06/04 17:48
概念:两个以上的函数(方法),具有相同的函数(方法)名,但是形参的个数或者类型不同,在编译时,由编译器根据实参的类型和个数,自动确定调用哪一个函数,即为重载。
示例:
int add(int x,int y){ return x+y;}int add(int x,int y,int z){ return x+y+z;}float add(float x,float y){ return x+y;}float add(float x,float y,float z){ return x+y+z;}
以上函数(方法)任意组合,都能构成重载
重载是可以使函数、运算符等处理不同类型的数据或者接受不同个数的参数的一种方法。从某种意义上理解,重载相当于我们日常生活中的动词。比如“喝”,既可以表示喝水,也可以表示喝汤,还能表示喝奶,当我们听到“喝”这个词的时候就会通过对话的语境来判断喝的是什么;同样的道理,当编译器在碰到被重载的函数(方法)名时,也会根据上下文,即实参的类型或者个数去选择调用某个具体的函数(方法)。
使用时的注意事项:
(1)构成重载的函数(方法),形参的个数或类型至少要有一项是不同的,当然也可以都不相同。
(2)编译器不以形参名来区分函数(方法)。
int add(int x,int y);int add(int a,int b);
从本质上看,这实际是一个函数(方法)。
(3)编译器不以返回值来区分函数(方法)。
int add(int x,int y);void add(int x,int y);
这两个函数(方法)不能构成重载。
但是在形参的参数类型或个数不同的情况下,返回值可以相同也可以不相同,不会对重载造成影响。
int add(int x,int y);void add(float x,float y);
这是可以构成重载的。
int add(int x,int y){return x+y;}folat add(float x,float y){return x+y;}
这是一个标准的重载例子
int compute(int a,int b){return a+b;}float compute(float a,float b){return a-b;}
这种写法在语法上并没有错误,但会给后续的编程带来麻烦,应该避免
void fun(int x,int y=2,int z=3);void fun(int x);
这样,在后续过程中,如果发生这样的调用fun(1);就会发生争议,使程序不能正常运行
以上是重载的一些常见的基本用法,供读者参阅。
1 0
- 关于重载的概念和使用时的注意事项
- 关于C++运算符重载和友元的概念
- 关于自定义TabHost的使用和注意事项
- 关于Cookie的使用案例和注意事项
- 关于apk 反编译的使用和注意事项
- 文件流变量使用重载运算符>>时的注意事项
- 关于Map使用时的注意事项
- 关于ACTION_LOCAL_NAME_CHANGED使用时的注意事项
- 多态的概念和一些注意事项
- 关于使用libcurl的注意事项
- 关于NSTimer的使用注意事项
- 关于CCRenderTexture使用的注意事项
- 关于使用libcurl的注意事项
- 关于使用libcurl的注意事项
- 关于Masonry使用的注意事项
- 关于使用libcurl的注意事项
- 关于使用libcurl的注意事项
- 关于npm的使用注意事项
- 位运算之左移右移运算之详解
- MFC 对话框 里在获取静态文本框内部相对于静态文本控件的坐标
- 点击button,将一个input的value放到另一个input中的三种方法
- vim配色方案的修改
- HAUT 1266 最大子段和(类似DP)(河南工业大学2017校赛)
- 关于重载的概念和使用时的注意事项
- 实习总结2
- leveldb源码剖析---缓存系统
- ubuntu16.04配置ssh免密码登陆
- 第三十九将项目八 回文日
- 查看Linux版本信息
- Android事件分发机制源码畅游解析(Activity篇)
- Hihocoder-1286 子矩阵求和
- 一阶RC低通滤波