相关疑难解决方法(0)

std :: shared_ptr:reset()与赋值

这是一个基本问题,但我没有找到关于它的先前帖子.以下问题的标题听起来可能与我的问题相同,但问题本身与标题不匹配:使用shared_ptr.reset还是operator =?

我对reset()成员函数的目的感到困惑std::shared_ptr:除了赋值运算符之外,它还有什么作用呢?

具体来说,给定定义:

auto p = std::make_shared<int>(1);
Run Code Online (Sandbox Code Playgroud)
  1. 以下两行是否相同:

    p = std::make_shared<int>(5);
    p.reset(new int(5));
    
    Run Code Online (Sandbox Code Playgroud)
  2. 这些怎么样:

    p = nullptr;
    p.reset();
    
    Run Code Online (Sandbox Code Playgroud)

如果两条线在两种情况下都相同,那么目的是reset()什么?


编辑:让我重新说一下这个问题,以便更好地强调它的观点.问题是:是否有一种情况reset()可以让我们在没有它的情况下实现一些不容易实现的事情?

c++ shared-ptr c++11

40
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

c++11 ×1

shared-ptr ×1