剑指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;    //返回自身对象
}

原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/6341557.html