第14课 运算符重载

上传人:痛*** 文档编号:181438165 上传时间:2023-01-13 格式:DOC 页数:12 大小:1.89MB
收藏 版权申诉 举报 下载
第14课 运算符重载_第1页
第1页 / 共12页
第14课 运算符重载_第2页
第2页 / 共12页
第14课 运算符重载_第3页
第3页 / 共12页
资源描述:

《第14课 运算符重载》由会员分享,可在线阅读,更多相关《第14课 运算符重载(12页珍藏版)》请在装配图网上搜索。

1、第14课 运算符重载一、运算符重载的概念 1、概念 一符多用。通过重载,对运算符赋予新的含义。 如“+”号,通过重载(C+系统完成),既可以进行整数运算,也可以进行浮点数运算。 2、实例:复数的加法(14_001.cpp) 3、上例:对“+”运算符进行重载(14_002.cpp) -二、运算符重载的规则 1、不允许自己定义新的运算符 2、不能重载的运算符 (1). (成员访问运算符) (2)* (成员指针访问运算符) (3): (域运算符) (4)sizeof (长度运算符) (5)?: (条件运算符) 3、不能改变运算对象的个数 4、不能改变运算符的运算级别 5、不能改变结合性 6、重载运算

2、符的函数不能有默认的参数 7、至少有一个参数是自定义的类对象(不能全是C+的标准类型) 8、用于类对象的运算符必须重载,有两个例外:“=”“&” 9、重载功能应该类似于标准的功能-三、 运算符重载函数作为友元函数 实例:复数相加(14_003.cpp) 说明: 1、在VC+ 6.0中运行此程序,应修改头两行,见程序。 2、由于友元函数会破坏类的封装性,所以应尽量避免使用。四、重载双目运算符(有两个操作数,如“+”) 1、实例:重载字符串比较运算符“=”、“”、“”、“!=” 说明:C+的字符串类型,就是对以上的运算符进行了重载,方便了字符串的比较 2、程序(14_004.cpp):以“=”运算

3、符重载为例 注意:如果将重载函数 定义为友元函数,则程序开头两句应改为: #include 3、重载“+”运算符,对类对象进行相加运算(14_exam.cpp) 4、重载“”运算符,对类对象进行比较(14_011.cpp) 5、重载“”运算符,判断点在不在背景空白处(14_012.cpp) -五、重载单目运算符 1、实例:重载运算符“+”(14_005.cpp) 说明:第二个重载函数,多了一个“int”参数,无实际意义,只是与第一个函数区别开来。-六、重载“”运算符 1、重载的格式: ostream & operator (istream &,自定义类&); 2、重载“”的友元实例(14_00

4、6.cpp) 说明: 重载“”的函数定义成友元函数的形式,程序开头两句要改为: #include 3、重载“”的普通函数(14_007.cpp) 说明:这种方式,只能将“minute”和“sec”设置成公有成员,破坏了封装性, 总结上面的两种方式,都不是完善的重载方法,“”的重载存在着问题。 4、完整的程序,重载“”的普通函数(14_008.cpp)注意:C+规定,重载“”的函数 不能做为类的成员函数。-七、不同类型数据间的转换 1、隐式类型转换 int i=6; i=3.5+i; /先把“i”转换成“double”,计算得9.5,然后再转换为“int”,9 2、显式类型转换 i=int(7.

5、5); /C+写法 3、类的转换构造函数 (1)用途:将其它类型的数据转换成类的对象 cp(double r)real=r;imag=0; (2)实例: cp c1(3.5); /将“dubble”类型数据“3.5”转换为复数对象“c1” c1=cp(3.5); /同上 (3)注意:转换构造函数只有一个参数 4、类型转换函数 (1)用途:将一个类的对象转换为其它类型数据 (2)实例: operator double() return real; (3)注意:函数没有参数,只能做为成员函数,根据上下文隐式调用 double d; cp c; d=3.5+c /隐式调用类型转换函数,将“c”转换为“double”类型 5、类型转换函数实例:将一个double数据与一个cp数据相加(14_009.cpp) 6、实例:运算符重载与转换构造函数配合使用(14_010.cpp) 说明:书上程序无法在“VC+6.0”上运行,该程序已做调整,可运行。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!