电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C++邮电-7VIP免费

C++邮电-7_第1页
1/82
C++邮电-7_第2页
2/82
C++邮电-7_第3页
3/82
第7章运算符重载7.1运算符重载概述7.2运算符重载函数作为类的友元函数和成员函数7.3前置运算符和后置运算符的重载7.4重载插入运算符和提取运算符7.5不同类型数据间的转换本章主要内容7.1运算符重载概述用于完成“+”、“-”、“*”、“\”等操作的函数为运算符函数。C++规定运算符函数名为:operator+operator-operator*operator\等统称为:operator@(@--要重载的运算符)运算符函数名两个或者两个以上的运算符函数共用一个运算符函数名为运算符函数重载。C++系统已经预先编好了将两个基本数据类型相加的的运算符函数,可以直接使用它们。1.求两个整数相加,例如:inti=2+3;2.求两个双精度数相加,例如:doubled=2.222+3.333;运算符函数重载调用预先编好的将两个整型数相加的的运算符函数调用预先编好的将两个双精度数相加的的运算符函数C++系统预先编好的运算符函数不能完成将两个对象的相加工作。例如:有一个复数类complex:classcomplex{public:doublereal,imag;complex(doubler=0,doublei=0){real=r;imag=i;}};实现两个对象相加的运算符函数若要把类complex的两个对象com1和com2加在一起:intmain(){complexcom1(1.1,2.2),com2(3.3,4.4);complextotal;total=com1+com2;//错误//…return0;}C++系统预先编好的运算符函数不能将两个对象的相加解决办法:用户自己编写一个实现两个对象相加的运算符函数,例如:intmain(){complexcom1(1.1,2.2),com2(3.3,4.4);complextotal;total=com1+com2;//…return0;}就能将类complex的两个对象com1和com2相加complexoperator+(complexco1,complexco2){…}将类complex的两个对象相加的运算符函数operator+():complexoperator+(complexco1,complexco2){complextemp;temp.real=co1.real+co2.real;temp.imag=co1.imag+co2.imag;returntemp;}调用语句:total=operator+(com1,com2);或:total=com1+com2;就能将类complex的两个对象com1和com2相加例7.1-1将两个complex类对象相加。#includeusingnamespacestd;classcomplex{public:doublereal,imag;complex(doubler=0,doublei=0){real=r;imag=i;}};complexoperator+(complexco1,complexco2){complextemp;temp.real=co1.real+co2.real;temp.imag=co1.imag+co2.imag;returntemp;}运算符函数operator+()main(){complexcom1(1.1,2.2),com2(3.3,4.4),total1,total2;total1=operator+(com1,com2);cout<<"real1="<classcomplex{public:doublereal,imag;complex(doubler=0,doublei=0){real=r;imag=i;}};complexoperator+(complexco1,complexco2){complextemp;temp.real=co1.real+co2.real;temp.imag=co1.imag+co2.imag;returntemp;}运算符函数operator+()例7.1-1是一个类外定义的运算符函数,只能访问公有数据成员,而不能访问类的私有数据成员。公有的数据成员例7.1-1存在的问题但是,实际上类中的数据成员常常是私有成员或保护成员解决办法:(1)定义为它将要操作的类的成员函数(简称为成员运算符重载函数);(2)定义为它将要操作的类的友元函数(简称为友元运算符重载函数)。7.2运算符重载函数作为类的友元函数和成员函数7.2.1运算符重载函数作为类的友元函数7.2.2运算符重载函数作为类的成员函数7.2.3运算符重载应该注意的几个问题本节主要内容7.2.1运算符重载函数作为类的友元函数在C++中,可以把运算符函数定义成某个类的友元函数,称为友元运算符重载函数。1.运算符重载函数作为类的友元函数的语法形式(1)在类的内部,定义友元运算符重载函数的格式如下:friend函数类型operator运算符(形参表){函数体}(2)友元运算符重载函数也可以在类中声明友元函数的原型,在类外定义。在类中,声明友元运算符重载函数原型的格式如下:在类外,定义友元运算符重载函数的格式如下:classX{…friend返回...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

您可能关注的文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部