c++中,return this 是返回当前对象的地址,但是return *this是返回当前对象或当前对象的拷贝。如果返回的是引用,那么就是对象本身,否则是对象的拷贝。这样析构的时候还得析构这个拷贝对象。由于拷贝对象中的某些成员可能是copy的原对象(它们的这些成员的地址都是一样的,只是对象本身的地址不一样)的,而这些已经被delete了,那么当在析构这个拷贝对象的时候就会再次delete,发生delete错误。
return *this和return this
最新推荐文章于 2024-03-21 17:34:59 发布