剑指offer面试题1---赋值运算符函数
题目描述:如下类型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) //先判断是否是给自己赋值
{
delete[] m_pData; //释放原有空间
m_pData = new char[strlen(str.m_pData) + 1]; //开辟空间
strcpy(m_pData, str.m_pData); //重新赋值
}
return *this; //返回自身对象
}