版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hahachenchen789/article/details/83339945
class String{
public:
String(const char *str=NULL);
String(const String &str);
~String();
String& operator=(const String &str);
private:
char* data;
size_t length;
};
String::String(const char *str)
{
if(!str)
{
length=0;
data = new char[1];
*data='\0';
}
else
{
length=strlen(str);
data=new char[length+1];
strcpy(data, str);
}
}
String::String(const String &str)
{
length=str.size();
data=new char[length+1];
strcpy(data,str.c_str());
}
String::~String()
{
delete []data;
length=0;
}
String& String::operator=(const String &str)
{
if(this==&str)
return *this;
delete []data;
length = str.size();
data = new char[length+1];
strcpy(data, str.c_str());
return *this;
}