收藏 分销(赏)

运算符重载string运算符.docx

上传人:pc****0 文档编号:6635330 上传时间:2024-12-18 格式:DOCX 页数:6 大小:18.95KB
下载 相关 举报
运算符重载string运算符.docx_第1页
第1页 / 共6页
运算符重载string运算符.docx_第2页
第2页 / 共6页
运算符重载string运算符.docx_第3页
第3页 / 共6页
运算符重载string运算符.docx_第4页
第4页 / 共6页
运算符重载string运算符.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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-

2、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 s

3、td: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 Fu

4、nnyString &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) c

5、har 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

6、; 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 &rig

7、ht) 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;

8、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;plef

9、t.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

10、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

11、);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 FunnyStr

12、ing &,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 FunnyString &operator-=( const FunnyString & ); const FunnyString &operator=(const FunnyString &); int getLength() const; private: int length; char *sPtr; void setFunnyString( const char * ); ;#endif

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服