class String
{
public:
String()
{
_pstr = nullptr;
}
String(const char *ptr)
{
if (ptr != nullptr)
{
_pstr = new char[strlen(ptr) + 1];
strcpy(_pstr, ptr);
}
else
{
_pstr == new char[1];//为了后面的函数不用判空。
*_pstr = '\0';
}
}
String(const String &str)
{
_pstr = new char[strlen(str._pstr) + 1];
strcpy(_pstr, str._pstr);
}
void operator=(const String &str)
{
if (&str == this)
return;
delete this->_pstr;
_pstr = new char[strlen(str._pstr) + 1];
strcpy(_pstr, str._pstr);
}
~String()
{
delete[] _pstr;
_pstr = nullptr;
}
private:
char *_pstr;
};