花狗

导航

 

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

 

posted on 2021-08-27 18:16  花狗  阅读(77)  评论(0)    收藏  举报