对上次的实现做了改进之后,实现为如下代码:
#include<iostream>
#include<cstring>
using namespace std;
class String
{
public:
String(char *str="")
:_str(new char[strlen(str+1)])
{
strcpy(_str,str);
}
String(const String& str)
:_str(NULL)
{
String tmp(str._str);
swap(_str,tmp._str);
}
~String()
{
delete[] _str;
}
String& operator=(String& str)
{
swap(_str,str._str);
return *this;
}
friend ostream& operator<<(ostream& os,const String& str);
private:
char *_str;
};
ostream& operator<<(ostream& os,const String& str)
{
os<<str._str<<endl;
return os;
}
int main()
{
String s1("go");
String s2("die");
String s3=s1;
cout<<s1;
cout<<s2<<s3;
getchar();
return 0;
}
本文出自 “七月朔风” 博客,请务必保留此出处http://luminous.blog.51cto.com/10797288/1749148