答案:String::~String()
{delete[]m_data;//由于m_data是内部数据类型,也可以写成delete m_data;
}
String::String(const char *str)
{if(str==NULL)
{m_data=new char[1];//若能加NULL判断则更好
*m_data=\0;
}
else
{int length=strlen(str);
m_data=new char[length+1]; //若能加NULL判断则更好
strcpy(m_data, str);
}
}
String::String(const String &other)
{int length=strlen(other.m_data);
m_data=new char[length+1];//若能加NULL判断则更好
strcpy(m_data, other.m_data);
}
String & String::operator=(const String &other)
{if(this==&other)
return *this;
delete[]m_data;
int length=strlen(other.m_data);
m_data=new char[length+1];//若能加NULL判断则更好
strcpy(m_data, other.m_data);
return *this;
}
void main()
{String str1("aa"),str2;
str1.show();
str2=str1;
str2.show();
String str3(str2);
str3.show();
}
|