- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
School of Information and Engineering, Shenzhen University * 运算符重载函数的定义形式为: 函数类型 运算符重载标识 重载运算符(形参表) {函数体} 运算符重载标识是专门记号 重载运算符表示重载哪一个运算符 School of Information and Engineering, Shenzhen University * 操作符重载定义形式 函数类型 operator 运算符(参数表) {函数体} 函数类型 类作用域::operator 运算符(参数表) {函数体} School of Information and Engineering, Shenzhen University * 重载运算符函数作为类成员函数时关于参数个数的讨论 重载一元运算符,不再显式指明参数;重载二元运算符时,只需显式指明一个参数;参数个数总是比实际参数个数少一个。 编译程序处理成员函数时,为它设置了一个this指针。在重载运算符函数中,默认this指针对应的缺省参数就是其中之一个参数,对于一元运算符函数使用的就是规定的this指针所指的参数(自身的参数),对于二元运算符对应是二元运算的左操作数。 School of Information and Engineering, Shenzhen University * 例 复数的+和-重载 复数类中重载“+”的函数体中: temp.real=real+other.real; temp.image=image+other.image; 相当于: temp.real=this→real+other.real; temp.image=this→image+other.image; 重载二元运算符时必须特别注意两个操作数的左右位置,特别是重载减法运算符: COMPLEX COMPLEX::operator -(const COMPLEX other) { ??????? COMPLEX temp; temp.real=real-other.real;? //相当于this→real-other.real temp.image=image-other.image; //相当于this→image-other.image return temp; } School of Information and Engineering, Shenzhen University * 重载赋值运算符“=” COMPLEX COMPLEX::operator =(const COMPLEX other) { real=other.real; //相当于this.real=other.real image=other.image; //相当于this.image=other.image return *this; } 声明一个对象时作初始化也采用运算符“=”,但此时采用的是拷贝构造函数而不是调用重载赋值运算符。 School of Information and Engineering, Shenzhen University * 重载下标运算符“[ ]” 下标运算符“[ ]”用来数某个向量的某个元素,或直接对向量中某个元素赋值,它被视为一个二元运算符。 下标运算符只能作类成员运算符进行重载,不可作为友元运算符。 School of Information and Engineering, Shenzhen University * #includeiostream.h #includestdlib.h const int MAX_SIZE=10; class VECTOR{ public: VECTOR() //构造函数 { int loop; for(loop=0;loop=MAX_SIZE-1; loop=loop+1) ???????????? table[loop]=loop; ?} int operator[ ](int index) //取向量元素{ if((index0)||(indexMAX_SIZE-1)) { cout”Index out of bounds.\n”; ???????exit(1); ?????????} return table[index]; ????} protected: ???????int tabl
您可能关注的文档
- 第6章实验设计解析.ppt
- 第二章 财政支出的基本理论解析.ppt
- 第6章数据库设计解析.ppt
- 第二章 财政支出基本理论解析.ppt
- 第6章外汇风险管理解析.ppt
- 第二章 财政支出解析.ppt
- 第6章完全竞争解析.ppt
- 第二章 产业分类解析.ppt
- 第6章无形资产评估解析.ppt
- 第二章 房地产金融基本知识解析.ppt
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)