智能指针中的一些用法

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

智能指针中的一些用法

 

智能指针中的一些用法

上一篇:静态局部变量


下一篇:顺序结构的单链表实现