本章节主要讲解是运算符重载。运算符重载是赋予运算符能操作自定义类型的功能。c++运算符重载主要分为以下三类:
类成员函数重载
友元函数重载
流运算符重载
类重载
重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。如下实现对象与对象的加法的测试代码:
对于上述重载: firstscore+secondscore 一般解析为 firstscore.operator +(secondscore) 的方式。operator+是函数名,对象调用成员函数的方式解析对象与对象的加法。所以类重载函数的参数个数是比运算符实际的操作数少1。
友元重载
友元重载,就是重载函数是友元函数,如下判断两个美女得分谁高的测试代码:
上述代码中,我们真正要比较的其实只是两个美女的各自得分,对于liu》di 重载函数的解析过程为 operator》(liu,di);operator》是函数名,故友元重载的参数个数是等于运算符的操作数的。
流重载
流运算符的重载只能采用友元的方式,并且流对象当做参数的时候必须采用引用(&)的方式,所以这里小编单独归结为一类。具体实例代码如下:
特殊重载
前置++或者-- 与后置++以及--的重载,类重载的时候并不遵循上述情况,通常我们会带一个int标识参数当做后置++或者--的重载,如下代码:
从这一点上看,其实前置之所以比后置快,一目了然,躲了一个对象的创建过程。
重载注意项
c++通常习惯单目运算符重载为类的成员函数,双目运算符重载友元函数,要注意的是有些运算符不能重载以及有些运算符只能重载类成员函数:
=,(),[],-》 只能重载为类成员函数
。,.*,::,?: 不能被重载
c++重载运算符的时候至少有一个数据是自定义类型,这个是重载的必备条件,切记。
责编ajx
基于结构化方法的无线传感器网络设计
元器件成本大涨,东软载波净利下滑44%
让假肢感受痛感 达到真实的皮肤体验
!!特价 HP54601A HP54600A HP54600
智能购物系统中的存储器应用
干货:三大实例讲解三种C++运算符重载
算力多元化时代 存储创新也需跟上步伐
能源互联网建设解决方案
浙江省多位领导参观普渡科技展台!
锂电池浆料水分仪的参数特点
爆发性应用增长催生5G,两大关键技术让梦想照进现实
CAV比对服务形位公差检测服务 冲压件3d尺寸测量
硅基组装材料的研究进展及组装结构功能优势机理
u-blox推出业界公认封装形式多模GNSS接收机模块
KindleX咪咕电子阅读器评测 看网文也可以很文艺
隆利科技再获两项发明专利证书
MAX4245/MAX4246/MAX4247超小型低功耗运算放大器
特斯拉与Neoen合作建300兆瓦锂电池储能系统
FPC软板性能测试方案中弹片微针模组的应用分析
简化微控制器与温度传感器的接口