- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9讲 运算符重载(二)。
运算符重载为友元 * 运算符重载为友元函数 运算符也可以重载为类的友元函数,这样它就可以自由地访问该类的任何数据成员。这时,运算所需要的操作数都需要通过函数的形参表来传递,在参数表中形参从左到右的顺序就是运算符操作数的顺序。但是,有些运算符不能重载为友元,如“=”、“()”、“[]”和“-”。 运算符重载为友元 1.双目运算:oprdl B oprd2 对于双目运算符B,如果opr dl为A类的对象,则应当把B重载为A类的友元函数,该函数有两个形参,其中一个形参的类型是A类。经过重载之后,表达式oprdl B oprd2就相当于函数调用operator B (oprdl,oprd2)。 运算符重载为友元 2.单目运算 1)前置单目运算:U oprd 对于前置单目运算符U,如“-”(负号)等,如果要实现表达式U oprd(其中oprd为A类的对象),则U可以重载为A类的友元函数,函数的形参为A类的对象。经过重载之后,表达式U oprd相当于函数调用operator U (oprd)。 运算符重载为友元 2)后置单目运算:oprd V 对于后置运算符V,如“++”和“--”,如果要实现表达式oprd ++或oprd --(其中oprd为A类的对象),那么运算符就可以重载为A类的友元函数,这时函数的形参有两个,一个是A类的对象oprd,另一个是整型(int)形参。重载之后,表达式oprd++和oprd--就相当于函数调用operator++ (oprd,0)和operator-- (oprd,0)。 运算符重载为友元 【例3】双目运算符重载为友元重载例题。 #includeiostream.h class point { private: float x,y; 运算符重载为友元 public: point(float xx=0,float yy=0){x=xx;y=yy;} float get_x(){return x;} float get_y(){return y;} friend point operator+(point p1,point p2);//重载运算符“+” friend point operator-(point p1,point p2) ;//和“-”为友元函数 }; 运算符重载为友元 运算符重载为友元 void main() { point p1(3,3),p2(2,2),p3,p4; p3=p1+p2; //两点相加 p4=p1-p2; //两点相减 coutp3.get_x() p3.get_y()endl; coutp4.get_x() p4.get_y()endl; } 运算符重载 练习、定义一个复数类complex,重载运算符“+”,使之能用于复数的加法运算,参加运算的两个运算量可以都是复数类对象,也可以其中有一个是整数,顺序任意。例如:c1+c2,c1+i,i+c1,c1+=c2均合法,编程:分别求两个复数之和,整数和复数之和。 赋值运算符“=”的重载 若obj1和obj2是类X的两个对象,obj2已被创建,则编译程序遇到如下语句: obj1=obj2; 就调用缺省的赋值运算符函数,将对象obj2的数据成员的值逐个赋给对象obj1的对应数据成员中。 赋值运算符“=”的重载 public: string(char *s) {ptr=new char[strlen(s)+1]; strcpy(ptr,s); } ~string() { delete ptr; } void print() { coutptrendl; } 赋值运算符“=”的重载 private: char *ptr; }; void main() { string p1(“book”),p2(pen); p1=p2; coutp2:; p2.print(); coutp1:; p1.print(); } 赋值运算符“=”的重载 例: 重载赋值运算符解决指针悬挂问题。 #include iostream.h #includestring.h class s
您可能关注的文档
- 第6课_中国古代科学技术.ppt
- 第7章 组件装配设计.ppt
- 第7章 光交换.ppt
- 第7章 多态性与虚函数(成教).ppt
- 第7章 国际航空货物运输.ppt
- 第7章 路由的热备份.ppt
- 第7章 核物理.ppt
- 第7章_重载与模板.ppt
- 第7章、火灾自动报警与联动系统设计.ppt
- 第7章 电力系统三相短路的分析与计算.pptx
- 2024年03月浙江金华义乌市公安局招考聘用184名警务辅助人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年03月河北省科学技术厅事业单位选聘工作人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年10月贵州兴仁市委政法委公开招聘青年见习人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年03月民政部所属事业单位2024年度公开招考31名应届毕业生笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年03月广东肇庆封开县教育系统赴高校招考聘用教师64人笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- [重庆]2025年重庆忠县教育事业单位招聘62人笔试历年参考题库附带答案详解.doc
- 【兵团】2024年新疆生产建设兵团第七师胡杨河市第七师医院医共体招聘工作人员133人笔试历年典型考题及考点剖析附带答案详解.docx
- 2024年10月北京高校大学生就业创业指导中心公开招聘3人笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 【南阳】2024年河南南阳市方城县招才引智事业单位招聘工作人员2人笔试历年典型考题及考点剖析附带答案详解.docx
- 【枣庄】2024年山东枣庄市台儿庄区青年人才优选20人笔试历年典型考题及考点剖析附带答案详解.docx
最近下载
- 无人机行业无人机巡检方案.pptx VIP
- 2025云南电网有限责任公司第三批社会招聘(9人)笔试模拟试题及答案解析.docx VIP
- Unit 1 Letters in Our life(课件)教科版(2024)英语三年级上册.pptx VIP
- 渣油加氢催化剂的再生.pdf VIP
- 云南电网有限责任公司招聘笔试题库2023.pdf VIP
- ERP项目会议纪要-MM小组 进口采购等流程会议纪要0924.doc VIP
- 7334-2007-T 手拉葫芦标准.pdf VIP
- 航空航天知识讲座学习课件PPT.pptx VIP
- 渣油加氢技术进展.pdf VIP
- ERP项目ERP_Meeting Notes_1021_浪潮erp项目实现阶段启动会议.doc VIP
文档评论(0)