在构造函数中使用 shared_ptr 对象有效但在析构函数中无效

using a shared_ptr object in constructor works but not in destructor

我有一个 class 结构如下:

class CLSS
{
public:
    CLSS(const std::shared_ptr<someType>& pobj) 
    {
    std::shared_ptr<someType> obj = pobj;
    obj->somefunc("DDDD")
    }
    ~CLSS()
    {
    }
};

这适用于现在的问题。但是,当我将 obj->info("DDDD") 的相同功能放入双构造函数时,它会出现 returns 错误,即:

    ...
    ~CLSS()
    {
      obj->info("DDDD")
    }
    ....

----------------编辑

我试过了

class CLSS
{
public:
    std::shared_ptr<someType> obj;

    CLSS(const std::shared_ptr<someType>& pobj) 
    {
    obj = pobj;
    obj->somefunc("DDDD")
    }
    ~CLSS()
    {
    }
};

但仍然无法编译,错误不是很可读。

obj 是构造函数中的局部变量。它在构造函数结束时被销毁。 您需要将其声明为您的 class.

的成员