码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer习题集

时间:2015-08-01 23:27:43      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

1.重载赋值运算符函数:(具体见代码)

//普通做法
CMyString& CMyString::operator=(const CMyString& str)
{
    if (this == &str) 
        return *this;

    delete[] m_Pdata;
    m_Pdata = new char[strlen(str.m_Pdata)+1];
    strcpy(m_Pdata,str.m_Pdata);

    return *this;
}

//更加安全的做法,普通做法在new内存不足情况下,已经将原值delete
CMyString& CMyString::operator=(const CMyString& str)
{
    if (this != &str)
    {
        CMyString strTemp(str);

        char* temp = str.m_Pdata;
        //通过strTemp的析构函数delete掉原值
        strTemp.m_Pdata = m_Pdata; 
        m_Pdata = temp; 
    }

    return *this;
}

 

剑指offer习题集

标签:

原文地址:http://www.cnblogs.com/jason1990/p/4694821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!