为了账号安全,请及时绑定邮箱和手机立即绑定

c++自我赋值问题

c++自我赋值问题

C++
陪伴而非守候 2018-10-06 10:30:35
effective第11个条款举的这个例子: Widget& Widget::operator=(const Widget& rhs)    //一份不安全的operator=实现版本  {      delete pb;     pb = new Bitmap(*rhs.pb);          return *this;  }像上面这样写,自我赋值肯定会出现问题,但是为什么要先释放掉pb呢?为什么不直接像下面这样重赋值呢? Widget& Widget::operator=(const Widget& rhs)    //一份不安全的operator=实现版本  {      pb = new Bitmap(*rhs.pb);           return *this;  }
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

第二种写法当自我复制时会造成内存泄漏

查看完整回答
反对 回复 2018-10-14
  • 1 回答
  • 0 关注
  • 663 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号