MyString::MyString(
const char *str){
if(str == NULL){
m_data =
new char[
1];
*m_data =
'\0';
}
else{
int length =
strlen(str);
m_data =
new char[length+
1];
strcpy(m_data,str);
}
}
MyString::MyString(
const MyString &other){
int length =
strlen(other.m_data);
m_data =
new char[length+
1];
strcpy(m_data,other.m_data);
}
MyString::~MyString(){
delete [] m_data;
}
MyString & MyString::
operator = (
const MyString &other){
if(
this == &other)
return *
this;
delete [] m_data;
int length =
strlen(other.m_data);
m_data =
new char[length+
1];
strcpy(m_data,other.m_data);
return *
this;
}
补充: MyString mys1,mys3; MyString mys2 = mys1; //拷贝构造 mys3 = mys2; //赋值拷贝
参照:https://www.nowcoder.com/discuss/66749