请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

这里调用赋值运算符操作时,可能会出现的问题具体是指什么呢?

正在回答

1回答

这里copy =被禁用了,所以我假设你提问的应该是一般情况下,一个指针赋值给另一个指针会出现什么问题,对吧?先说结论,如果你的copy =实现的没有任何问题,那是不会有什么事情的。但是很多人会忽略一种情况,就是指针的自赋值的检查,什么意思呢,就是ab两指针指的是同一块内存。想想你要在copy =中做什么?很多人一上来就想当然的觉得,要把a指向的原来那块内存先释放掉,然后对b指向的内存做深拷贝。这看上去似乎没什么问题,但是如果两个指针指向同一块区域呢?所以正确的实现方法是,一上来你就要先判定两个指针地址是否相等,如果是,直接返回就可以了。 同理,在实现move =的时候也不能忘了先检查两个指针是否相等。另外,这里也体现出了使用智能指针的好处。

1 回复 有任何疑惑可以回复我~
  • 提问者 李谌 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2023-06-17 09:35:00
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信