首页 > 其他 > 详细

智能指针中的一些用法

时间:2021-08-29 23:48:07      阅读:16      评论:0      收藏:0      [点我收藏+]

lock

先上结论;

返回一个引向weak_ptr所观察的资源的shared_ptr,如果可以的话。如果没有这样的指针(即weak_ptr引向的是空指针),shared_ptr引向的也是空指针。否则shared_ptr所引向的资源的引用计数将正常递增。

首先看下面代码:

reset函数会释放sp1指向的空间

int main() {
    std::shared_ptr<int> sp1, sp2;
    std::weak_ptr<int> wp;

    sp1 = std::make_shared<int>(20);    
    wp = sp1;                            

    //sp2 = wp.lock();                     
    sp1.reset();                         

    cout << 111;

    //sp1 = wp.lock();                     

    std::cout << "*sp1: " << *sp1 << \n;
    std::cout << "*sp2: " << *sp2 << \n;

    return 0;
}

技术分享图片

 

 调用lock之后,会返回一个引向weak_ptr所观察的资源的shared_ptr

技术分享图片

 

智能指针中的一些用法

原文:https://www.cnblogs.com/221lin/p/15194886.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!