更新时间:2023-10-01 18:18
weak_ptr是为配合shared_ptr而引入的一种智能指针。
工具简介
weak_ptr可以从一个shared_ptr或另一个weak_ptr对象构造,它的构造和析构不会引起shared_ptr引用记数的增加或减少(但会导致引用计数区域内负责weak_ptr计数变量_M_weak_count的增加或减少,当其计数为0时,调用_M_destroy()释放对象内存)。没有重载*和->但可以使用lock获得一个可用的shared_ptr对象。
weak_ptr的一个重要用途是通过lock获得this指针的shared_ptr,使对象自己能够生产shared_ptr来管理自己,但助手类enable_shared_from_this的shared_from_this会返回this的shared_ptr,只需要让想被shared_ptr管理的类从它继承即可。