第9章-运算符重载.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章-运算符重载

§9-3 实例 9.3.1赋值运算符 C++默认的赋值运算符 结构、类对象 重载赋值运算符 需要深拷贝时,即浅拷贝不合适,应提供成员赋值运算符。 区别拷贝构造函数和赋值运算函数 Void fn(MyClass mc) {MyClass newMC=mc; //调用拷贝构造函数 newMC=mc; //赋值运算符 } 9.3.2 典型运算符重载 【例9-3】重载运算符=为类的成员函数进行复数类数据赋值 分析:=是一个二元运算符,A=B被编译成operator = (A, B), 其中A应是一个左值。 1. 重载复数赋值=运算 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 /******************************************* * p9_3.cpp * * 重载=为类的成员函数,进行复数赋值 * *******************************************/ #includeiostream using namespace std; class Complex //复数类定义 { private: double real; //复数实部 double image; //复数虚部 public: Complex(double real=0.0,double image=0.0) //构造函数 { this-real=real, this-image=image; } void display() { cout(real,image)endl; } Complex operator + (Complex B); //运算符+重载成员函数 Complex operator = (Complex B); //运算符=重载成员函数 }; 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 Complex Complex::operator +(Complex B) //重载运算符+的函数实现 { return Complex(real+B.real, image+B.image); //创建一个临时对象作为返回值 } Complex Complex::operator =(Complex B) //重载运算符=的函数实现 { real=B.real, image=B.image; coutoperator = calling...endl; return *this; //return Complex(real,image); } int main() { Complex A(100.0,200.0),B(-10.0,20.0),C; coutA=, A.display(); coutB=, B.display(); C=A+B; //使用重载运算符完成复数加法 coutC=A+B=, C.display(); C=A; coutC=A=, C.display(); return 0; } 1. 重载复数赋值=运算 A=(100,200) B=(-10,20) operator = calling... C=A+B=(90,220) operator = calling... C=A=(100, 200) 运行结果: 2. 重载下标运算符[ ] 【例9-5】重载下标运算符[ ]为类的成员函数 分析:下标运算符[ ]的操作对象有两个,左边是一个对象指针,[]中间是一个作为下标的整型数。因此,[ ]作为二元运算符重载。下面重载下标运算符,使之能够按下标访问字符串中指定位置字符 2 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档