C++11 std::weak_ptr指针

std::weak_ptr相对于std::shared_ptr更加的复杂,它可以指向一个std::shared_ptr,不过它并不像std::shared_ptr一样拥有该内存。
std::weak_ptr就像std::d,当使用weak_ptr成员lock时,则可返回其指向内存的一个shared_ptr对像,且在所指对像内存无效时,返回空指针(null_ptr)。

#include<iostream>
#include<memory>

void fun(std::weak_ptr<int> ptr)
{
    std::shared_ptr<int> p = ptr.lock();
    if (p != nullptr)
    {
        std::cout << *p << std::endl;
    }
    else
    {
        std::cout << "ptr pointer is invalid" << std::endl;
    }
}

int _tmain(int argc, _TCHAR* argv[])
{
    std::shared_ptr<int> p1(new int(10));
    std::weak_ptr<int> p2 = p1;
    fun(p2);
    return 0;
}
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!