- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.5 运算符重载 * //类的实现:Complex.cpp #include?Complex.h Complex?Complex::add(Complex?c) { ????return?Complex(real+c.real,?image+c.image); } Complex?Complex::sub(Complex?c) { ????return?Complex(real-c.real,?image-c.image); } void?Complex::print() { ????if(image?0.0) ????????cout(realimagei)endl; ????else ????????cout(real+imagei)endl; } 例6-4(续) 6.5 运算符重载 * //主函数文档:main.cpp #include?complex.h #include?iostream using?namespace?std; int?main() { ????Complex?a(1.8,?-2.4),?b(4.3,?4.7); ????Complex?c?=?a.add(b); ????Complex?d?=?a.sub(b); ????c.print(); ????d.print(); ????return?0; } 例6-4(续) (6.1+2.3i) (-2.5-7.1i) (1)运算符重载的实质是函数重载,可以对大部分的运算符进行重载,这是C++的重要特点。C++编译器根据参数个数和类型来决定调用哪个函数重载,同一个运算符可以定义几个运算符重载函数来进行不同的操作。运算符重载返回类型可以是任意的,通常与操作数类型相同。 * 6.5.1运算符重载规则 6.5 运算符重载函数 (1) 只能针对C++中原有运算符进行重载,不能通过重载创造出新的运算符。 下列五个运算符不允许重载 . 成员访问运算符 .* 成员指针运算符 :: 作用域区分运算符 ? : 条件运算符 sizeof 测数据空间大小运算符 除此之外,C++的其他运算符都可以重载。 * 6.5.1运算符重载规则 6.5 运算符重载函数 6.5.1运算符重载规则(续) (2)重载后的运算符所做的操作要尽量保持原来的意义,否则会降低程序的可读性。 (3) C++中,用户不能定义新的运算符,只能重载已有的运算符重载。有六个运算符不能重载:成员访问运算符“.”,成员指针运算符“?”和“*”,作用域运算符“::”,sizeof运算符和三目运算符“?:”。 (4) 重载运算符与预定义运算符的使用方法完全相 同,它不能改变原来运算符的参数个数,也不能改变其的优先级。 * 6.5 运算符重载函数 6.5.2 运算符重载为成员函数 类中的成员函数总是通过该类的对象来访问的; 如果是双目运算符,左操作数一定是访问成员函数的对象本身,另一个操作数通过运算符重载函数的参数表来传递; 如果是单目运算符,操作数就是访问成员函数的对象本身,不需要再传递任何参数。 * 6.5 运算符重载函数 6.5 运算符重载 * 例6-6 复数类乘法运算重载为类的成员函数。 #include iostream using namespace std; class complex { private: //私有成员 double real, image; public: //公有接口 complex(double r=0.0, double i=0.0):real(r), image(i) { } ~complex() { } complex operator* (const complex c) const; complex operator* (const double c) const; void print()const; }; void complex::print() const { cout(real,image)endl; } * complex complex::operator*(const complex c) const { return complex(real*c.real-image*c.image, real*c.image+image*c.real); } complex complex::operator*(const double c) const { return complex(real*c, image*c); } int main() { complex c1(3,4), c2(7,8), c3; c3=c2*c1
您可能关注的文档
- Android应用程序开发与典型案例谷歌软件下载器简介.pptx
- Android应用程序开发与典型案例监听系统开关机.ppt
- Android应用程序开发与典型案例静态注册.ppt
- Android应用程序开发与典型案例使用HttpClient.pptx
- Android应用程序开发与典型案例有序广播.ppt
- Android应用程序开发与典型案例主界面框架搭建.pptx
- ASIC设计理论与实践-第3章.ppt
- AutoCAD2016机械设计教程课件项目1-直线要素构成的平面图形绘制-出版社.ppt
- AutoCAD2016机械设计教程课件项目2-圆要素构成的平面图形绘制-出版社.ppt
- AutoCAD2016机械设计教程课件项目3-多要素构成的平面图形绘制-出版社.ppt
- 《2025年豆制品行业植物基产品创新工业化生产营销渠道分析》.docx
- 《2025年公路货运网络化运营与新能源车辆技术标准发展分析报告》.docx
- 《2025年eVTOL古代遗迹考察市场销量与场景需求研究》.docx
- 《2025年快递行业末端配送数字化转型实施方案》.docx
- 《2025年设计软件行业:创意设计需求增长与AI技术融合分析》.docx
- 2025年碳纤维制造工艺创新2025年及市场趋势.docx
- 《2025年航空业品牌建设:低成本航空市场渗透与国际航线营销》.docx
- 城市建设公共设施施工组织设计 甘肃省广播电视中心工程施工组织设计方案甘肃二建.docx
- 《2025年体育旅游行业虚拟现实分析:赛事旅游融合体验与运动休闲目的地开发策略》.docx
- 白莲河水库加固工程施工组织设计水利方案.docx
最近下载
- 2024-2025学年沪教版(2024)七年级英语上册+Unit+5词汇课件.pptx VIP
- 儿童用药风险点挖掘及管理实践题库答案-2025年华医网继续教育答案.docx VIP
- 人教版数学六年级下册全册课件(2025年4月修订).pptx
- 2026年光伏组件出口壁垒解析:技术创新在巴基斯坦市场的应用前景报告.docx
- 必威体育精装版民事起诉状范本.pdf VIP
- 欧洲规范-NF P94-078-中文版.pdf VIP
- 受激拉曼散射PPT课件.pptx VIP
- 肠促胰素在临床综合管理的应用及指导题库答案-2025年华医网继续教育答案.docx VIP
- 和兴园社区申报《老年宜居社区》自评报告.doc VIP
- 《走遍法国2》单词注释.pdf VIP
有哪些信誉好的足球投注网站
文档评论(0)