具体要求如下:
#include
#include
using namespace std;
class STR{
char *s;
public:
STR(char *p=0){
if(p){
s=new char[strlen(p)+1];
strcpy(s,p);
}else s=0;
}
STR operator=(STR &str){
s = new char[strlen(str.s)+1];
strcpy(s,str.s);
return *this;
}
friend STR& operator+=(STR &str1,STR &str2){
STR t=str1;;
str1.s=new char[strlen(t.s)+strlen(str2.s)+1];
strcpy(str1.s,t.s);
strcat(str1.s,str2.s);
return str1;
}
void print(){
cout<<s<<endl;
}
~STR(){
if(s)delete[]s;
}
};
int main(){
char a[]="abcd",b[]="1234";
STR s1(a),s2(b);
s1.print();
s2.print();
STR s3=s1+=s2;
s3.print();
return 0;
}