#include<iostream>
using namespace std;
class String
{
public:
String(const char* str)
:_str(new char[strlen(str)+1])
{
strcpy(_str,str);
}
/*String(const String& s)
:_str(NULL)
{
String tmp(s._str);
swap(_str,tmp._str);
}*/
String(const String& s)
:_str(new char[strlen(s._str)+1])
{
strcpy(_str,s._str);
}
/*String& operator=(String s)
{
swap(_str,s._str);
return *this;
}*/
/*String& operator=(String &s)
{
if(this!=&s)
{
delete []_str;
_str=new char[strlen(s._str)+1];
strcpy(_str,s._str);
}
return *this;
}*/
String& operator=(const String& s)
{
if(this!=&s)
{
String tmp(s);
swap(_str,tmp._str);
}
return *this;
}
~String()
{
if(_str)
{
delete []_str;
}
}
void Print()
{
if(_str)
cout<<_str<<endl;
}
private:
char* _str;
};
void test()
{
String s1("we are young");
String s2(s1);
s2.Print();
String s3("lallaa");
s3=s1;
s3.Print();
}
int main()
{
test();
system("pause");
return 0;
}
转载于:https://blog.51cto.com/youngyoungla/1769461