重载运算符解决指针悬挂问题

赋值的=不是指针的变化,而是整个内容的赋值给对象了。

 

单目的前运算 this 是前符号

string& string::operator=(const string& s){

 if (this==&s) return *this;  //避免s=s?

 delete ptr;

 ptr = new char[strlen(s.ptr)+1];

 strcpy(ptr,s.ptr);

 return *this;

}

你可能感兴趣的:(String)