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