美文网首页
unique_ptr

unique_ptr

作者: 写一行代码 | 来源:发表于2020-09-03 17:26 被阅读0次

    unique_ptr所指的内存为自己独有,只能有一个unique_ptr指向一个指定的对象。不支持拷贝和赋值.

    测试程序

      void test()
    {
        unique_ptr<int> up1(new int(11));
        cout << *up1 << endl;
        std::unique_ptr<int> up3 = std::move(up1);//转移对象的所有权,转移之后,up1不再持有此内存
                                                  //up3将获得对象的所有权
        cout << (up1==nullptr) << endl;//up1为空指针
        cout << *up3 << endl;
        up3.reset();//手动释放内存
        up1.reset();//不会报错
        std::cout << (up3 == nullptr) << endl;//up3为空指针
    
        std::unique_ptr<int> up4(new int(22));
        up4.reset(new int(44));//绑定对象
        std::cout << *up4 << endl;
    
        up4 = nullptr;//手动释放内存,与reset等价
    
        unique_ptr<int> up5(new int(55));
        int* p = up5.release();//释放对象所有权,内存没有释放
        cout << *p << endl;
        cout << (up5 == nullptr) << endl;//up5为空指针
        delete p;//释放堆区内存
    }
    

    相关文章

      网友评论

          本文标题:unique_ptr

          本文链接:https://www.haomeiwen.com/subject/dmunsktx.html