




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
运算符重载#include#includeFunnyString.husing std:istream; using std:ostream; using std:string; using std:cout; using std:cin;using std:endl;int main()FunnyString string1,string2; coutstring1;coutstring2; cout未进行s1-=s2运算时的s1 * s2 is string1*string2; coutns1 + s2 is string1+string2;coutns1 - s2 is string1-string2;coutns1+= s2 is (string1+=string2);coutns1 -= s2 is (string1-=string2);/老师,题目中写道:s1+= s2 is abcabf s1 -= s2 is c s1 * s2 is adbacbdf coutn进行s1-=s2运算后的s1 * s2 is string1*string2n; /但是-=后s1的只有一个c了,乘以s2后是不是应为cdabf。return 0;#include using std:istream; using std:ostream; using std:string; using std:cout; using std:cin;using std:endl;#includeFunnyString.hvoid FunnyString:setFunnyString( const char * a) sPtr=new char length+1;if ( a!=0)strcpy(sPtr,a);elsesPtr0=0;FunnyString:FunnyString( const char *first):length(first!=0)?strlen(first):0)setFunnyString(first);FunnyString:FunnyString( const FunnyString &a)length=a.length;sPtr=new charlength+1;for(int i=0;ilength;i+)sPtri=a.sPtri;int FunnyString:getLength() constreturn length;FunnyString:FunnyString()delete sPtr; ostream &operator( ostream &output, const FunnyString &a ) for (int i=0;ia.length;i+) output( istream &input, FunnyString &a) char b100; inputb; a.length=strlen(b); delete a.sPtr; a.sPtr=new char a.length+1; for (int i=0;istrlen(b);i+) a.sPtri=bi; return input; const FunnyString &FunnyString:operator= (const FunnyString &a) if (&a != this) delete sPtr; length=a.length; setFunnyString(a.sPtr); return *this; else return *this; const FunnyString &FunnyString:operator+=( const FunnyString &a ) FunnyString c;c=*this+a;*this=c;return *this; const FunnyString &FunnyString:operator-=( const FunnyString &a ) FunnyString c;c=*this-a;*this=c;return *this; const FunnyString operator+(const FunnyString &left,const FunnyString &right) int len=left.length+right.length; char *a=new char len+1; a1=left.sPtr1; for (int i=0;ileft.length;i+) ai=left.sPtri; len=left.length; int j; for ( j=0;jright.length;j+) if(len!=0) if (left.sPtrlen-1=right.sPtrj) len-; else j+; break; else j+; break; j-; if (jright.length-1) for (;jright.length;j+) len+; alen-1=right.sPtrj; alen=0; FunnyString c(a); delete a; return c; const FunnyString operator-(const FunnyString &left,const FunnyString &right) char *a=new char left.length+1; int len=left.length; for (int i=0;ileft.length;i+) ai=left.sPtri; for (int j=0;jright.length;j+) for (int p=0;pleft.length;p+) if (ap=right.sPtrj) ap=0; for (int s=0;sleft.length;s+) if (as=0) int q=s; for(;qleft.length;q+) aq=aq+1; len-; s-; alen=0; FunnyString c(a); delete a; return c; const FunnyString operator*(const FunnyString &left,const FunnyString &right)char *a=new char left.length+right.length+1;int min;if (left.lengthright.length)min=left.length;elsemin=right.length;for (int i=0;imin;i+)a2*i=left.sPtri;a2*i+1=right.sPtri;if (left.lengthright.length)for (int j=min;jright.length;j+)amin+j=right.sPtrj;elsefor (int j=min;jleft.length;j+)amin+j=left.sPtrj;aleft.length+right.length=0;FunnyString c(a);delete a;return c;#ifndef FUNNYSTRING_H#define FUNNYSTRING_H#include #includeusing std:istream; using std:ostream; using std:string; using std:cout; using std:cin;using std:endl;class FunnyString friend ostream &operator( istream &, FunnyString &); friend const FunnyString operator+(const FunnyString &,const FunnyString &); friend const FunnyString operator-(const FunnyString &,const FunnyString &); friend const FunnyString operator*(const FunnyString &,const FunnyString &); public: FunnyString( const char * = ); FunnyString( const FunnyString & ); FunnyString(); const FunnyString &operator+=( const FunnyString & ); const FunnyStr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年下沉市场消费金融风险识别与防控技术研究报告
- 药品资质使用管理制度
- 药学设施设备管理制度
- 药店员工工作管理制度
- 药店用药咨询管理制度
- 菜谱生产车间管理制度
- 设备仪器事故管理制度
- 设备备件外委管理制度
- 设备拆除作业管理制度
- 设备维修保状管理制度
- 印度尼西亚劳动法
- 工业机器人的发展现状和未来趋势
- 安宁疗护疼痛管理指南的系统评价
- (完整版)语文作文纸方格纸模版(两种格式任选)
- 建函201521号 广铁集团建管处关于发布《邻近营业线施工物理隔离防护办法》的通知
- 健康管理师-第十六章-健康管理相关法律法规
- 审计学-中央财经大学中国大学mooc课后章节答案期末考试题库2023年
- 肾内科学篇病例分析1
- 2023年高考英语二模试题分项汇编-09翻译(教师版)(上海)
- GB/T 42596.3-2023机床安全压力机第3部分:液压机安全要求
- 黑龙江省教育科学规划课题成果鉴定与结题验收评价表
评论
0/150
提交评论