C++ 智能唯一指针作为成员变量

C++ 智能唯一指针作为成员变量,c++,smart-pointers,C++,Smart Pointers,我的课程是: class LargeObject { public: LargeObject(); void DoSomething(); private: std::unique_ptr<Thing> pThing; }; 我想在整个代码中使用成员变量。如何做到这一点?我认为初始化应该在构造函数的初始化列表中,也就是从另一个构造函数调用构造函数的地方: LargeObject() :pThing(new Thing){} 如果pThing是一个i

我的课程是:

class LargeObject
{
  public:
    LargeObject();
    void DoSomething();
  private:
    std::unique_ptr<Thing> pThing;
};

我想在整个代码中使用成员变量。如何做到这一点?

我认为初始化应该在构造函数的初始化列表中,也就是从另一个构造函数调用构造函数的地方:

LargeObject()
:pThing(new Thing){}

如果
pThing
是一个
int
,您将如何初始化它?先试试这个。成功后,请尝试
unique\u ptr
。尽管链接的重复问题涉及
shared\u ptr
s,但可以使用构造函数初始化列表从指向
对象的指针初始化
unique\u ptr
。其他成员变量也可以在初始化列表中进行初始化,请参见和。好的,这似乎是一种方法。我会试试看。TnxIt可以在这里和其他地方像普通指针一样使用“新的”。
LargeObject()
:pThing(new Thing){}