- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
运算符重载教学教材.ppt
第7章 运算符重载
7.1 运算符重载概述
7.2 运算符函数重载为类的友元函数
和成员函数
7.3 几个常用运算符的重载
7.4 重载插入运算符和提取运算符
7.5 类型转换; 7.1 运算符重载概述
用于完成“+”、 “-”、 “*”、 “\”等操作的函数为运算符函数。
C++规定运算符函数名为:
operator+
operator-
operator*
operator\ 等
统称为:
operator@ ( @--要重载的运算符);
两个或者两个以上的运算符函数共用一个运算符函数名为运算符函数重载。
C++系统已经预先编好了将两个基本数据类型相加的的运算符函数,可以直接使用它们。
1.求两个整数相加,例如:
int i=2+3;
2.求两个双精度数相加,例如:
double d=2.222+3.333 ;
;
C++系统预先编好的运算符函数不能完成将两个对象的相加工作。
例如:有一个复数类complex:
class complex {
public:
double real,imag;
complex(double r=0,double i=0)
{ real=r; imag=i;}
};; 若要把类complex的两个对象com1和com2加在一起:
int main()
{
complex com1(1.1,2.2),com2(3.3,4.4);
complex total;
total = com1 + com2; //错误
//…
return 0;
}
;例7.1-1 将两个complex类对象相加的完整程序。
#includeiostream
using namespace std;
class complex {
public:
double real, imag;
complex(double r=0,double i=0){real=r;imag=i;}
};
complex operator+(complex co1,complex co2)
{complex temp;
temp.real=co1.real+co2.real;
temp.imag=co1.imag+co2.imag;
return temp; }; main( )
{ complex com1(1.1,2.2),com2(3.3,4.4),total1,total2;
total1=operator+(com1,com2);
coutreal1=total1.real;
cout imag1= total1.imag endl;
total2=com1+com2;
coutreal2=total2.real;
cout imag2=total2.imag endl;
return 0; };#includeiostream.h
class complex{
public:
double real, imag;
complex(double r=0,double i=0){real=r;imag=i;} };
complex operator+(complex co1,complex co2)
{complex temp;
temp.real=co1.real+co2.real;
temp.imag=co1.imag+co2.imag;
return temp; }
; 解决办法:
(1) 定义为它将要操作的类的成员函数(简称为成员运算符重载函数);
(2) 定义为它将要操作的类的友元函数(简称为友元运算符重载函数)。
;
7.2 运算符函数重载为类的友元函数和成员函数
7.2.1 友元运算符重载函数
7.2.2 成员运算符重载函数
7.2.3 运算符重载应该注意的几个问题;7.2.1 友元运算符重载函数
在C++中,可以把运算符函数定义成某个类的友元函数,称为 友元运算符重载函数 。
1. 友元运算符重载函数定义的语法形式
(1)在类的内部,定义友元运算符重载函数的格式如下:
; (2) 友元运算
您可能关注的文档
最近下载
- 2025最新高级生命支持(ACLS)理论考核试题及答案.docx VIP
- T∕CCSAS 001-2018 危险与可操作性分析质量控制与审查导则.pdf
- 07J912-1变配电所图集.pdf VIP
- 基于PLC控制的小车自动化送料系统设计(毕业论文).doc VIP
- 2025北京海淀高一(下)期末数学试卷含答案.pdf VIP
- 中国社会的不婚现象:现实与潜在影响探讨.docx VIP
- 2025最新高级生命支持(ACLS)理论考核试题和答案.docx
- 5.2《稻》《作酢法》+二则(知识清单)-【中职专用】高二语文(高教版2023拓展模块下册).docx VIP
- 2025年非车险考试题 .pdf VIP
- GB50016-2014 建筑设计防火规范(2018年版).docx
文档评论(0)