题目要求:如下类型CMyString的声明,请为该类添加赋值运算符函数
class CMyString
{
public:
CMyString(char* pData = NULL);
CMyString(const CMyString&str);
~CMyString(void);
private:
char* m_pData;
};
解法一:
CMyString& operator =(const CMyString &str)
{
//检测自赋值
if (this != &str)
{
CMyString strTemp(str);
//交换
char *pTemp = strTemp.m_pData;
strTemp.m_pData = m_pData;
m_pData = pTemp;
}
return *this;
}
解法二:
CMyString& operator=(CMyString str)
{
std:: swap (m_pData, str.m_pData);
return *this;
}
解法三:
CMyString operator =(const CMyString &str)
{
if (this != &str)
{
char* pTemp=new char[strlen(str.m_pData) + 1];
strcpy(pTemp, str.m_pData);
delete[]m_pData;
m_pData=pTemp
}
return *this;
}