首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C++篇】“内存泄露”的宝藏手段:智能指针

    weakptr是C++11设计出来的智能指针,他的名字翻译出来是弱指针,他完全不同于上⾯的智能指针,他不⽀持RAII,也就意味着不能用它直接管理资源,weakptr的产生本质是要解决shared_ptr...不⽀持RAII,也不⽀持访问资源,所以我们看⽂档发现weakptr构造时不⽀持绑定到资 源,只⽀持绑定到sharedptr,绑定到sharedptr时,不增加shared_ptr的引用计数,那么就可以...weakptr也没有重载operator*和operator->等,因为他不参与资源管理,那么如果他绑定的 sharedptr已经释放了资源,那么他去访问资源就是很危险的。...weakptr⽀持expired检查指向的 资源是否过期,usecount也可获取sharedptr的引⽤数,weakptr想访问资源时,可以调用lock返回⼀个管理资源的sharedptr,如果资源已经被释放...sharedptr中的count计数在sharedptr释放时不会立即释放,因为它还需要提供给weakptr使用,如果立即释放了,就会造成weakptr野指针的情况。

    20810
    领券