zoukankan      html  css  js  c++  java
  • C++11中的unique_ptr、shared_ptr、weak_ptr

    转载:

    https://www.cnblogs.com/wangkeqin/p/9383658.html

    https://www.cnblogs.com/wangkeqin/p/9351191.html

    https://www.cnblogs.com/DswCnblog/p/5628314.html

    C++11中的unique_ptr、shared_ptr、weak_ptr非常重要,但是你要完全掌握需要时间和一定的内功。所以我经常翻阅以上三篇文章。简洁有案例,非常好。

    本想自己写文档,但是有这么好的文章,就不需要班门弄虎了。稍加整理,把常见使用函数贴出来。

     

    一、C++内存管理之unique_ptr

    二、C++内存管理之shared_ptr

    三、C++ 11 创建和使用共享 weak_ptr

    weak_ptr是为了配合shared_ptr而引入的一种智能指针,

    它指向一个由shared_ptr管理的对象而不影响所指对象的生命周期,

    也就是将一个weak_ptr绑定到一个shared_ptr不会改变shared_ptr的引用计数。

    不论是否有weak_ptr指向,一旦最后一个指向对象的shared_ptr被销毁,对象就会被释放。

    从这个角度看,weak_ptr更像是shared_ptr的一个助手而不是智能指针。

    最重要的是搞清楚以下三句话:

    std::shared_ptr<int> sPtr(new int(5));
    std::weak_ptr<int> wPtr = sPtr;            //weak_ptr不会改变shared_ptr,但是会和shared_ptr的引用保持一致
    std::shared_ptr<int> sPtr2 = wPtr.lock();  //wPtr.lock()后会改变shared_ptr的引用计数(+1)
  • 相关阅读:
    pysocketserver
    协程
    py模块和包
    py网络编程
    GridView绑定技巧终结者
    iOS 证书/私钥/代码签名/描述文件
    八拜之交
    POJ3230(Travel)
    POJ2553(The Bottom of a Graph)
    动态规划的实质
  • 原文地址:https://www.cnblogs.com/orange-CC/p/14245421.html
Copyright © 2011-2022 走看看