- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 运算符重载 C++ 程序的设计.ppt
第10章 运算符重载 Complex Complex::Add(Complex c) {Complex temp; temp.real = real + c.real; temp.imag = imag + c.imag; return temp; } class Complex {private: double real; double imag; public: Complex(){real=0;imag=0;} Complex(double r, double i){real=r;imag=i;} void Print(){cout ( real , imag ) endl;} Complex Add(Complex c); }; int main() {Complex a(1, 2), b(3, 4), c; c = a.Add(b); cout c = ; c.Print(); } 复数加减法只能调用成员函数实现,不能使用符号“+”和“-”,可以通过重载“+”、“-”运算符,实现如c=a+b这样的调用方式 运算符重载:运算符重载的实质就是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时,产生不同的行为。运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。 例:用运算符实现复数的加法运算 Complex Complex:: operator +(Complex c) {Complex temp; temp.real = real + c.real; temp.imag = imag + c.imag; return temp; } int main() {Complex a(1, 2), b(3.0, 4.0), c; c =a+b; cout c = ; c.Print(); } 程序运行结果为: c=(4,6) 该语句相当于调用函数 operator +(Complex c) c=a.operator+(b), 实现两个复数的加法运算。 class Complex {private: double real; double imag; public: Complex(){real=0;imag=0;} Complex(double r, double i){real=r;imag=i;} void Print(){cout ( real , imag ) endl;} Complex operator+(Complex c); }; 运算符重载的格式 运算符重载为类的成员函数 运算符重载为类的友元函数 运算符重载的规则 除“.”、“*”、“::”、“?:”和“sizeof”等几个运算符不能重载外,C++中几乎所有的运算符都可以重载。 运算符被重载后,其优先级和结合性不会改变。 不能改变运算符操作对象的个数。 运算符的意义应不变。 用于类对象的运算符一般必须重载,但有两个例外,运算符“=”和“”不必用户重载。 Complex Complex:: operator -(Complex c) {Complex temp; temp.real = real - c.real; temp.imag = imag - c.imag; return temp; } #include iostream class Complex {private: double real; double imag; public: Complex(); Complex(double r, double i); void Print(); Complex operator +(Complex c); Complex operator -(Complex c); }; int main() {Complex a(1, 2), b(3.0, 4.0), c,d; c =a+b; d =a-b; cout c = ; c.Print(); cout “d = ; d.Print(); } 程序运行结果为: c = (4, 6) d = (-2, -2) 总结: 设有双目运算符 B,如果要重载 B 为类的成员函数,使之能够实现表达式 oprd
您可能关注的文档
- 社会学第五章 性和 与社会性别.ppt
- 社会学第六章 社会互动和 与社会网络.ppt
- 社会学第四章社会学分层和 与社会流动.ppt
- 社会心理学_社会知觉与印象相关管理(新,二专) 社会心理学 社会学考研专业课.ppt
- 社会性的的发展与培养 心理的发展与教育.ppt
- 社会政策基本的 原理4实施评估与变动 社会政策概论 .ppt
- 社会政策基本的 原理5价值争议 社会政策概论 .ppt
- 社会政策基本的 原理8全球化与社会政策 社会政策概论 .ppt
- 社会科学研究基本方法介绍.ppt
- 社会统计学 第七章 假设检验的基本相关知识 课件.ppt
- 第10章 面向对象的设计 普通高等院校计算机类专业系列教材 软件工程.ppt
- 第10章 高性能微处理器 微机原理与接口技术知识 课件.ppt
- 第10章 MRP&MRP2 《生产与运作相关管理》课件.ppt
- 第10章 Multisim 9常用仿真分析基本方法 PCB制图与电路仿真课件.ppt
- 第10章 VB与三菱FX系列PLC的通信 《VB基础与RS-232C通信技术知识》课件.ppt
- 第10章 三相交流电动机调速 电机和 与拖动基础 课件 ppt.ppt
- 第10章 中国园林建筑 中国古典建筑与室内的设计.ppt
- 第10章 乒乓球 《体育和 与健康》大学课件.ppt
- 第10章 传感器在工业中的应用 《传感器技术知识与应用》课件.ppt
- 第10章 光电测量技术知识 检测技术知识与仪器 工程测试技术知识 .ppt
最近下载
- 成都第四十九中学新初一分班英语试卷.doc VIP
- 中经金融高频考点.doc VIP
- 竞聘演讲稿经营管理部部长.pptx
- 学堂在线 中医养生方法学 章节测试答案.docx VIP
- 整村授信专题培训ppt课件.pptx
- 2025年科技强国爱国主题班会《科技强国 强国有我》课件.pptx VIP
- 《常州武进常州燊荣金属科技有限公司“1·20”较大粉尘爆炸事故调查报告》警示教育专题培训.pptx VIP
- 智能化弱电工程投标文件的技术部分标书范本.docx VIP
- 行业分类专题研究:行业分类标准2.0版及修订说明-20200102-中信证券.pdf VIP
- 深圳市翰林学校英语新初一分班试卷.doc VIP
文档评论(0)