第14课 运算符重载

第14课 运算符重载

ID:14308737

大小:1.89 MB

页数:12页

时间:2018-07-27

第14课 运算符重载_第1页
第14课 运算符重载_第2页
第14课 运算符重载_第3页
第14课 运算符重载_第4页
第14课 运算符重载_第5页
资源描述:

《第14课 运算符重载》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第14课运算符重载一、运算符重载的概念   1、概念      一符多用。通过重载,对运算符赋予新的含义。      如“+”号,通过重载(C++系统完成),既可以进行整数运算,也可以进行浮点数运算。   2、实例:复数的加法(14_001.cpp)      3、上例:对“+”运算符进行重载(14_002.cpp)   -------------------------------------------------------------------------------二、运算符重载的规则   1、不允许自己定义新的运算符   2、不能重载的运算符      

2、 (1).        (成员访问运算符)       (2)*        (成员指针访问运算符)       (3)::       (域运算符)       (4)sizeof   (长度运算符)       (5)?:       (条件运算符)   3、不能改变运算对象的个数   4、不能改变运算符的运算级别   5、不能改变结合性   6、重载运算符的函数不能有默认的参数   7、至少有一个参数是自定义的类对象(不能全是C++的标准类型)   8、用于类对象的运算符必须重载,有两个例外:“=”“&”   9、重载功能应该类似于标准的功能--------

3、-----------------------------------------------------------------------三、运算符重载函数作为友元函数   实例:复数相加(14_003.cpp)      说明:   1、在VC++6.0中运行此程序,应修改头两行,见程序。   2、由于友元函数会破坏类的封装性,所以应尽量避免使用。四、重载双目运算符(有两个操作数,如“+”)   1、实例:重载字符串比较运算符“==”、“>”、“<”、“!=”      说明:C++的字符串类型,就是对以上的运算符进行了重载,方便了字符串的比较   2、程序(1

4、4_004.cpp):以“==”运算符重载为例      注意:如果将重载函数定义为友元函数,则程序开头两句应改为:         #include   3、重载“+”运算符,对类对象进行相加运算(14_exam.cpp)      4、重载“<”运算符,对类对象进行比较(14_011.cpp)       5、重载“<”运算符,判断点在不在背景空白处(14_012.cpp)   -------------------------------------------------------------------------------五、重

5、载单目运算符   1、实例:重载运算符“++”(14_005.cpp)      说明:第二个重载函数,多了一个“int”参数,无实际意义,只是与第一个函数区别开来。-------------------------------------------------------------------------------六、重载“<<”运算符   1、重载的格式:   ostream&operator<<(ostream&,自定义类&);   istream&operator>>(istream&,自定义类&);   2、重载“<<”的友元实例(14_006.cpp

6、)      说明:       重载“<<”的函数定义成友元函数的形式,程序开头两句要改为:             #include   3、重载“<<”的普通函数(14_007.cpp)      说明:这种方式,只能将“minute”和“sec”设置成公有成员,破坏了封装性,         总结上面的两种方式,都不是完善的重载方法,“<<”的重载存在着问题。   4、完整的程序,重载“<<”和“>>”的普通函数(14_008.cpp)注意:C++规定,重载“<<”和“>>”的函数不能做为类的成员函数。-----------------

7、--------------------------------------------------------------七、不同类型数据间的转换   1、隐式类型转换      inti=6;      i=3.5+i;  //先把“i”转换成“double”,计算得9.5,然后再转换为“int”,9   2、显式类型转换      i=int(7.5);   //C++写法   3、类的转换构造函数       (1)用途:将其它类型的数据转换成类的对象            cp(doubler){real=r;imag=0;}       

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。