通过创建一个临时的实例strTemp,再交换临时实例和原来的实例,由于strTemp是局部变量,运行到if外就会自动析构。
CMyString& operator = (const CMyString& str) {
if(this == &str) {
return *this;
} else {
CMyString strTemp(str);
char* pTemp = strTemp.m_pData;
strTemp.m_pData = m_pData;
m_pData = pTemp;
return *this;
}
}