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

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 关注
  • 654 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信