- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第18篇 章 运算符重载 C++.ppt
第18章 运算符重载;本章主要内容;简 介;18.1 运算符重载的需要性 ;18.1 运算符重载的需要性;18.1 运算符重载的需要性;18.2 如何重载运算符 ;① 操作符重载为友元函数(无this指针)
重载声明:
friend 返回类型 operator 被重载的操作符(形参表) ;
重载定义:
返回类型 operator 被重载的操作符 (形参)
{
…
}
注意:
如果是对一元运算符重载只要一个参数,
如果是对二元运算符重载要有两个参数。;② 操作符重载为成员函数(有this指针)
重载声明:
返回类型 operator 被重载的操作符(形参表) ;
重载定义:
返回类型 类名::operator 被重载的操作符(形参表)
{
…
}
注意:
如果是对一元运算符重载不需要参数,
如果是对二元运算符重载只要一个参数。;例:二元加、一元减操作符重载为友元函数。
#includeiostream.h
class A{
private:
int x,y;
public:
A(int xx,int yy):x(xx),y(yy){}
A(){x=0;y=0;}
friend A operator + (const A a,const Ab);
friend A operator - (const A a);
void show() {coutx=x y=yendl;}
};
A operator + (const A a,const A b)
{return A(a.x+b.x,a.y+b.y);}
A operator - (const A a) {return A(-a.x,-a.y);} ;int main() {
A a1(5,55),a2(6,66),a3;
a3=a1+a2; //调用操作符重载函数: operator +(a1,a2)
a3.show();
a1=-a1; //调用操作符重载函数: operator -(a1)
a1.show();
}
执行结果:
x=11 y=121
x=-5 y=-55;例如,下面的程序将运算符 + 和++声明为人民币类的友元
//** ch18_2.cpp **
#includeiostream.h
class RMB{
protected:
unsigned int yuan;
unsigned int jf;
public:
RMB(unsigned int d, unsigned int c);
friend RMB operator + (RMB, RMB);
friend RMB operator ++(RMB);
void display(){ cout (yuan + jf / 100.0) endl; }
};;RMB::RMB(unsigned int d, unsigned int c) {
yuan = d;
jf = c;
while ( jf =100 ){ //以使构造时,确保角分值小于100
yuan ++;
jf -= 100;
}
}
RMB operator +(RMB s1, RMB s2) {
unsigned int jf = s1.jf + s2.jf;
unsigned int yuan = s1.yuan + s2.yuan;
RMB result( yuan, jf );
return result;
};RMB operator ++(RMB s){
s.jf ++;
if(s.jf = 100){
s.jf -= 100;
s.yuan++;
}
return s;
}
int main(){
RMB d1(1, 60);
RMB d2(2, 50);
RMB d3(0, 0);
d3 = d1 + d2; //d3=operator+(d1,d2);
++ d3; //operator++(d
您可能关注的文档
- 第12篇 章_物权概述 民法课件.ppt
- 第12篇 章 企业所得税 税法 .ppt
- 第12篇 章 图象理解理论和系统 图像工程(第2版)下册图像理解.ppt
- 第12篇 章主要旅游区概述 中国旅游地理 .ppt
- 第12篇 章合同法分则(买卖) 合同法 .ppt
- 第12篇 章房地产投资项目环境影响评价 房地产投资分析 .ppt
- 第12篇 章第一节心血管系统疾病 病理学基础课件.ppt
- 第12篇 章第三节消化系统疾病 病理学基础课件.ppt
- 第12篇 章第二节 呼吸系统疾病 病理学基础课件.ppt
- 第12篇 章第五节传染病 病理学基础课件.ppt
- 吉林省吉林市第五中学2024-2025学年七年级上学期期末考试数学试卷.docx
- 湖南省长沙市师大附中梅溪湖中学2024-2025学年八年级上学期期末考试英语试题.docx
- 吉林省公主岭市2024-2025学年七年级上学期期末考试语文试题.docx
- 吉林省吉林市船营区2024-2025学年八年级上学期12月期末生物试题.docx
- 吉林省吉林市船营区2024-2025学年八年级上学期期末地理试题.docx
- 湖南省长沙市华益中学2024-2025学年七年级上学期期末考试语文试题.docx
- 吉林省吉林市第七中学大学区2024-2025学年七年级上学期期末地理试卷.docx
- 湖南省长沙市雅礼教育集团2024-2025学年高一下学期期末考试数学试卷.docx
- 湖南省长沙市长郡中学2024-2025学年高一上学期1月期末考试政治试题.docx
- 湖南省长沙市长郡中学2024-2025学年高一上学期1月期末物理试题.docx
最近下载
- 就业居间合同协议书范本.docx VIP
- 海德汉数控机床系统简明调试手册.pdf VIP
- DB33T 2034-2017 茶树高温热害等级.pdf VIP
- 道路清扫保洁项目工作难点分析及解决措施.docx VIP
- 东华理工大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 3D测头-海德汉.PDF VIP
- 黑龙江省2024年1月普通高中学业水平合格性考试英语试题(含答案,无听力原文及音频).pdf VIP
- 开展社会稳定风险评估所需资料清单(2021年修正版).docx VIP
- 《医学统计课件:聚类分析的应用》.ppt VIP
- 小儿推拿学试卷及答案.docx VIP
原创力文档


文档评论(0)