c++之重载函数(一)
来源:互联网 发布:远程协助软件 编辑:程序博客网 时间:2024/06/06 00:33
(一)概念:什么是重载
1 所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是”一名多用”。(运算符重载的本质是一个函数)
2 运算符重载的限制:
只需记住下面几个特殊的运算符不能重载即可: 1 .(点) 2.::(域解析符) 3 .*(对象选择符) 4 ?:(条件运算符) 5. sizeof
重载运算符函数可以对运算符做出新的解释,但原有语义基本不变:
(1)重载不能改变运算符的优先级和结合性
(2)不改变运算符所需要的操作数
(3)不能创建新的运算符
(二)运算符重载实现的俩种方法:
1.成员函数 2.友元函数(全局函数实现)
1)运算符函数可以重载为成员函数和友元函数
2)关键区别在于成员函数有this指针, 而友元函数没有this指针。
3)不管是成员函数,还是友元函数,运算符的使用方法相同,但参数传递的方式,实现代码不同,应用场合也不同
4)如果俩个参数,左操作数在类的内部无法实现时,只能声明为友元函数实现(全局函数)
3二元运算符
//通过类成员函数完成-操作符重载//函数声明 Complex operator-(Complex &c2)//函数调用分析//用类成员函数实现-运算符重载 Complex c4 = c1 - c2; c4.printCom(); //c1.operator-(c2);
4一元运算符
5前置和后置++总结:
6.全局函数、类成员函数方法实现运算符重载步骤:
1)要承认操作符重载是一个函数,写出函数名称operator+ ()
2)根据操作数,写出函数参数
3)根据业务,完善函数返回值(看函数是返回引用 还是指针 元素),及实现函数业务
7.成员函数与友元函数选择方法:
1)当无法修改左操作数的类时,使用全局函数进行重载
2) =, [], ()和->操作符只能通过成员函数进行重载
(三)总结
1.操作符重载是C++的强大特性之一
2.操作符重载的本质是通过函数扩展操作符的语义
3.operator关键字是操作符重载的关键
4.friend关键字可以对函数或类开发访问权限
5.操作符重载遵循函数重载的规则
6.操作符重载可以直接使用类的成员函数实现
7.=, [], ()和->操作符只能通过成员函数进行重载
8.++操作符通过一个int参数进行前置与后置的重载
9.C++中不要重载&&和||操作符
- 函数重载 C++(一)
- c++之重载函数(一)
- 编写一函数add()函数重载,函数模板(C++)
- c++primer之函数重载
- 从零开始学C++之运算符重载(一):以成员函数方式重载、以友元函数方式重载
- 从零开始学C++之运算符重载(一):以成员函数方式重载、以友元函数方式重载
- 从零开始学C++之运算符重载(一):以成员函数方式重载、以友元函数方式重载
- 从零开始学C++之运算符重载(一):以成员函数方式重载、以友元函数方式重载
- 从零开始学C++之模板(一):函数模板、函数模板特化、重载函数模板、非模板函数重载
- 从零开始学C++之模板(一):函数模板、函数模板特化、重载函数模板、非模板函数重载
- C++之构造函数重载一题
- 重载之函数重载
- Object-C--->Swift之(七)函数重载
- 【C++】之【运算符重载函数】
- 从零开始学C++之从C到C++(一):const与#define、结构体对齐、函数重载name mangling、new/delete 等
- 从零开始学C++之从C到C++(一):const与#define、结构体对齐、函数重载name mangling、new/delete 等
- 从零开始学C++之从C到C++(一):const与#define、结构体对齐、函数重载name mangling、new/delete 等 .
- 从零开始学C++之从C到C++(一):const与#define、结构体对齐、函数重载name mangling、new/delete 等
- 一个数组中只有两个数字单独出现,其余数字都是成对出现的,请找出这两个数。
- 边缘计算促进微数据中心的兴起
- 一种不错的使用cacti的方法-dockered cacti
- 应用两大策略 降低数据中心工作复杂性
- tomcat 总结2
- c++之重载函数(一)
- 大数相乘算法(相加,相减)
- 一款成熟的数据中心模型设计
- Android图像处理之画笔特效处理
- HDOJ 2057 A + B Again(十六进制加减,__int64)
- 多线程服务器
- 一种Windows下懒式探测野指针的方法
- 数据中心到底要用多少光模块?
- webstorm中vue语法没有提示,怎么解决?