模拟String类
#include<iostream>
using namespace std;
class String
{
public:
String(char *data="")
{
if (*data == '\0')
{
_data = new char[1];
*_data = '\0';
}
else
{
_data = new char[strlen(data) + 1];
strcpy(_data, data);
}
}
String(String &str) :_data(NULL)
{
String temp(str._data);
swap(temp._data, _data);
}
String &operator=(const String &str)
{
if (this!= &str)//注意判断是否是自赋值
{
String temp(str._data);
swap(temp._data, _data);
}
return *this;
}
~String()
{
if (_data != NULL)
{
delete[]_data;
}
}
private:
char *_data;
};
int main()
{
String str1("jjjjj");
String str2(str1);
str2 = str2;
system("pause");
}