美文网首页
shared_ptr和weak_ptr

shared_ptr和weak_ptr

作者: 7bfedbe4863a | 来源:发表于2018-04-14 22:16 被阅读0次
  • shared_ptr 控制对象的生命期。shared_ptr 是强引用 (想象成用铁丝绑住堆上的对象),只要有一个指向 x 对象的 shared_ptr 存在,该 x 对象就不会析构。 当指向对象 x 的最后一个 shared_ptr 析构或 reset 的时候, x 保证会被销毁。
  • weak_ptr 不控制对象的生命期,但是它知道对象是否还活着(想象成用棉线轻轻拴住堆上的对象) 。如果对象还活着,那么它可以提升(promote) 为有效的 shared_ptr; 如果对象已经死了,提升会失败,返回一个空的 shared_ptr。“ 提升”行为是线程安全的。
  • 意外延长对象的生命期。 shared_ptr 是强引用 ,只要有一个指向 x 对象的 shared_ptr 存在,该对象就不会析构。而 shared_ptr 又是允许拷贝构造和赋值的(否则引用计数就无意义了) ,如果不小心遗留了一个拷贝,那么对象就永远无法析构了。

相关文章

  • weak_ptr的使用场景

    weak_ptr只能从shared_ptr对象构建。 weak_ptr并不影响动态对象的生命周期,即其存在与否并不...

  • shared_ptr和weak_ptr

    shared_ptr 控制对象的生命期。shared_ptr 是强引用 (想象成用铁丝绑住堆上的对象),只要有一个...

  • 智能指针

    C++ 11 智能指针 unique_ptr、shared_ptr 与 weak_ptr C++ 11 中有 un...

  • 智能指针

    C++里面的智能指针包括auto_ptr, shared_ptr, unique_ptr, weak_ptr四种。...

  • 再说智能指针

    一 STL的智能指针及使用 STL中智能指针有std::shared_ptr std::weak_ptr std:...

  • C++11智能指针

    C++里面的四个智能指针: auto_ptr, unique_ptr,shared_ptr, weak_ptr 其...

  • C++智能指针作为成员变量

    C++11为我们提供了shared_ptr、unique_ptr和weak_ptr这三种智能指针帮助我们更方便安全...

  • C++:智能指针使用方法

    0.什么是智能指针? auto_ptr, shared_ptr, weak_ptr, unique_ptr这四个是...

  • C++11智能指针

    智能指针 unique_ptr shared_ptr weak_ptr 在C98中,智能指针通过一个模...

  • C++11智能指针

    [C++11]智能指针 C++11包括了三种智能指针: shared_ptr weak_ptr unique_pt...

网友评论

      本文标题:shared_ptr和weak_ptr

      本文链接:https://www.haomeiwen.com/subject/ifsrkftx.html