已有140人关注
重载 “=”运算符 时候 的问题
发表在C语言答疑区 2016-11-23
是否精华
版块置顶:

String& String::operator =(const String  &rhs)  //实现赋值函数

{

     if (  this == &rhs)

          return *this ;

     delete  []m_data;                                            //删除原来的数据,新开一块内存

     m_data  = new char[strlen(rhs.m_data) + 1];

      strcpy(m_data,rhs.m_data);

     return  *this ;

}


上面的代码中为什么需要   delete []m_data; ? 为什么需要删除 原来的数据,新开一块内存?


分享到:
精彩评论 1
again
学分:250 LV4
2016-11-24
沙发

并不知道新的字符串有多长, 原来的内存可能不够大。
如果确信 原来的内存够大。也可以用来原的。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照