- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《C++面向对象程序设计》教学内容 第1章 C++概述 第2章 类和对象 第3章 面向对象程序设计概述 第4章 进一步学习类和对象 第5章 堆与复制构造函数 第6章 继承性:派生类 第7章 运算符重载 第8章 虚函数和多态性 第9章 模板 第10章 类库和C++的标准模板库STL 第11章 输入输出流 第12章 异常处理 第7章 运算符重载 7.1 重载运算符的目的 7.2 运算符重载语法 7.3 成员运算符函数 7.4 友元运算符函数 7.5 成员运算符函数与友元运算符函数比较 7.6 “++”和“--”的重载 7.7 赋值运算符“=”的重载 7.7 下标运算符”[ ]”与函数调用运算符”( )”的重载 7.9 构造函数用于类型转换 7.10 应用举例 7.1 重载运算符的目的 简略的表达方法 函数式的表达方法 运算符函数 运算符重载 简略的表达方法 x+y*z 简略的表达方法是一种缩略或公式化表达的方法。 好处:简明直观、能提高交流效率。 函数式的表达方法 class Complex{ private: double real; double image; public: Complex( ); Complex Add(Complex); }; //… Complex object1,object2,object3; …… object3 =object1.Add(object2); 运算符函数 class complex{ / / very simplified complex double re, im; public: complex(double r, double i) : re(r) , im(i) { } complex operator+(complex) ; complex operator*(complex) ; }; 运算符重载 void f( ) { complex a = complex(1, 3.1) ; complex b = complex(1.2, 2) ; complex c = b; a = b+c; b = b+c*a; c = a*b+complex(1,2) ; } 7.2 运算符重载语法 运算符重载 C++语言提供的标准运算符可以重新在类中定义,使标准运算符作用于类的对象,从而使对象的计算操作表示得既自然又符合常规。 运算符函数 C++将运算符看作一种特殊类型的函数,运算符的重载是通过对运算符函数的重载实现的。运算符函数名由关键字operator 和重载得运算符组成。 运算符重载的方法 首先在类定义时说明待重载的运算符,其格式为: 返回值类型 operator op (参数表); 然后象定义函数一样定义重载运算符函数。 返回值类型 类名称∷operator op(参数表) { //…… 运算符处理程序代码 } 运算符重载的实质 必要性 C++中预定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类) 实现机制 运算符重载的实质就是函数重载:每个运算符对应各自的运算符函数,根据操作数的不同调用不同的同名函数。 将指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参。 7.3 成员运算符函数 重载为类成员函数时 参数个数=原操作数个数-1 (后置++、--除外) 当类的对象调用这种运算符函数时,对象中的成员数据就可以是一个操作数,另一个操作数才通过参数传递来获得。 如: class complex {public complex operator + (complex c2); ……. } 简单复数类的运算符重载 #includeiostream.h class complex //复数类声明 { public: //外部接口 complex(double r=0.0,double i=0.0) {real=r;imag=i;} //构造函数 complex operator + (complex c2); //+重载为成员函数 complex operator - (complex c2);
您可能关注的文档
- AutoCAD2008中文版实用教程 李长胜 第8章新.ppt
- AutoCAD2008中文版实用教程 李长胜 第9章新.ppt
- AutoCAD2008中文版实用教程 李长胜 第10章新.ppt
- AutoCAD2008中文版实用教程 李长胜 第11章新.ppt
- AutoCAD2008中文版应用教程 朱维克 幻灯稿 第01章 基础知识新.ppt
- AutoCAD2008中文版应用教程 朱维克 幻灯稿 第03章 绘图辅助工具新.ppt
- AutoCAD2008中文版应用教程 朱维克 幻灯稿 第04章 图层颜色新.ppt
- AutoCAD2008中文版应用教程 朱维克 幻灯稿 第05章 绘制二维图形新.ppt
- AutoCAD2008中文版应用教程 朱维克 幻灯稿 第07章 文字与表格新.ppt
- AutoCAD2008中文版应用教程 朱维克 幻灯稿 第08章 图块新.ppt
- C++面向对象程序设计 张德慧 周元哲 主编 第9章 模板新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第八章和第九章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第八章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第二章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第六章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第七章1新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第七章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第三章和第四章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第三章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第十一章1新.ppt
文档评论(0)