- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
对[例8.7]进行修改#includeiostream.hclassVector{private: intx,y;public: Vector()x(0),y(0){}; Vector(intx1,inty1){x=x1;y=y1;} voiddisplay() {cout(x,y)endl;} Vectoroperator-=(Vectorv);friendVectoroperator+=(Vectorv1,Vectorv2);//修改书上}第29页,共50页,星期日,2025年,2月5日VectorVector::operator-=(Vectorv)//成员函数方式{ x-=v.x; y-=v.y; return*this;}Vectoroperator+=(Vectorv1,Vectorv2)//友元方式{ v1.x+=v2.x; v1.y+=v2.y; returnv1;};voidmain(){ Vectorv1(6,8),v2(3,6),v3,v4; coutv1=;v1.display(); coutv2=;v2.display(); v3=v1+=v2;//v3=operator+=(v1,v2); coutv1+=v2后,v1=;v1.display(); v4=v1-=v2;//v4=v1.operator-=(v2); coutv1-=v2后,v1=;v1.display();}结果:v1=(6,8)v2=(3,6)v1+=v2后,v1=(9,14)v1-=v2后,v1=(6,8)目录第30页,共50页,星期日,2025年,2月5日8.6下标运算符重载[]下标运算符“[]”通常用于取数组的某个元素下标运算符重载可实现数组下标越界检测等。只能作为类的成员函数,不能作为类的友元函数第31页,共50页,星期日,2025年,2月5日[例8.9]#includeiostream.h#includestring.hclasswords{private: intlen; char*str;public: words(char*s) { str=newchar[strlen(s)+1]; strcpy(str,s); len=strlen(s); } ~words(){delete[]s;} voiddisp(){coutstrendl;} charoperator[](intn);}第32页,共50页,星期日,2025年,2月5日charwords::operator[](intn)const{ if(nlen-1) { cout数组下标超界; return\0; //返回一个特殊字符 } else return*(str+n);}voidmain(){ wordsword(ThisisC++Book); word.disp(); cout“位置0:; coutword[0]endl; //显示T cout位置15:; coutword[15]endl; //显示K cout位置25:; coutword[25]endl; //显示超界}ThisisC++Book位置0:T位置15:K位置25:数组下标超界目录第33页,共50页,星期日,2025年,2月5日(略)8.7运算符new与delete重载(自学)C++提供new与delete运算符用于内存管理.大多数情况下,它们是非常有效的。但有些情况下我们需要自己管理内存,以克服new与delete的不足。这就要重载运算符new与delete,使其按照要求完成对内存的管理。第34页,共50页,星期日,2025年,2月5日[例8.10]#includeiostream.h#includemalloc.hclassRect{ public: Rect(intl,intw){ length=l;width=w; } voiddisp(){ cout面积:length*widthendl; } void*operatornew(size_tsize) voidoperatordelete
您可能关注的文档
最近下载
- 人员招聘与培训实务形考任务1答案.doc VIP
- 男性公民兵役登记表PDF打印.pdf VIP
- 专题14 二次函数中线段最值与面积最值铅垂法2020-2021学年九年级数学重点题型通关训练解析版.docx VIP
- 北京联合大学2024-2025学年第1学期《宏观经济学》期末考试试卷(B卷)附标准答案.docx
- 5eDnD_凡戴尔的失落矿坑_模组_中译(二校).pdf VIP
- 药食同源的培训课件.pptx VIP
- 2025年长沙交通投资控股集团有限公司人员招聘笔试备考试题(含答案详解).docx
- 2026年高考语文一轮复习之小说阅读:分析小说的叙事艺术.pptx VIP
- 智慧小区门禁系统的设计与实现.docx VIP
- 最新地下车库电气施工方案.docx VIP
原创力文档


文档评论(0)