智能指针(shared_ptr、unique_ptr、weak_ptr)
shared_ptr允许多个指针指向同一个对象;unique_ptr则"独占"所指向的对象。 所以看使用者的意图,想这个对象咋么用。
weak_ptr只是是辅助类,它是一种弱引用。本质应该没啥作用,它可以为强引用提前占位,但它的存在不会占据引用计数。 比如enable_shared_from_this中会用到。
java中也有类似机制,弱引用在用之前要转换成强引用,只用弱引用访问对象,可能还没访问完对象就被释放了。
shared_ptr允许多个指针指向同一个对象;unique_ptr则"独占"所指向的对象。 所以看使用者的意图,想这个对象咋么用。
weak_ptr只是是辅助类,它是一种弱引用。本质应该没啥作用,它可以为强引用提前占位,但它的存在不会占据引用计数。 比如enable_shared_from_this中会用到。
java中也有类似机制,弱引用在用之前要转换成强引用,只用弱引用访问对象,可能还没访问完对象就被释放了。