c++primer第四版讲智能指针时在定义HasPtr类的赋值操作符时为什么既使使用计数加一又减一
答案:1 悬赏:0 手机版
解决时间 2021-02-19 18:23
- 提问者网友:记得曾经
- 2021-02-19 03:58
c++primer第四版讲智能指针时在定义HasPtr类的赋值操作符时为什么既使使用计数加一又减一
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-02-19 05:17
防止自身赋值追问可以说得具体点吗追答你把源代码贴出来吧追问这是我的截图追答防止自身赋值即防止像A=A这样的情况;
例如定义一个对象A ,然后A=A;
(不自加的话你先考虑一下怎么执行)
如果不先自加而直接用if判读,--ptr->use=0,将会删除ptr,调用析构函数销毁对象A
对一个不存在的对象操作会引起不明确行为;
所以先自加,后减;
例如定义一个对象A ,然后A=A;
(不自加的话你先考虑一下怎么执行)
如果不先自加而直接用if判读,--ptr->use=0,将会删除ptr,调用析构函数销毁对象A
对一个不存在的对象操作会引起不明确行为;
所以先自加,后减;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯