zhedahht / CodingInterviewChinese2

《剑指Offer:名企面试官精讲典型编程面试题》第二版源代码
Other
5.32k stars 2.17k forks source link

面试题1考虑异常安全的解法有误 #57

Open pusidun opened 5 years ago

pusidun commented 5 years ago

代码仓库没有给出,书上给出了

//copy operator
CMyString& CMyString::operator=(const CMyString& str)
{
    if(m_pData != &str)
    {
        CMyString tmpData(str);

        char *ptmp = tmpData.m_pData;
        tmpData.m_pData = m_pData;
        m_pData = ptmp;
    }
    return *this;
}

m_pData是private的,书上写的有点问题

zhiqiang-hhhh commented 4 years ago

private 在这里没影响吧

pusidun commented 4 years ago

@hezhiqiangTS tmpData.m_pData 这里,private不能这么写吧

acxmx commented 4 years ago

private 在这里没影响吧

不懂,可以解释一下吗?

acxmx commented 4 years ago

同问,tmpData不能直接访问它的private成员吧?需要通过成员函数访问的吧? 但是自己写代码测试也是能通过,现在很疑惑,求懂的同学解答!