C++:可以在构造函数中初始化boost :: scoped_ptr吗?

Jon*_*han 10 c++ boost scoped-ptr

可以boost::scoped_ptr在类的构造函数中初始化类的类成员吗?怎么样?
(不在初始化列表中)

Art*_*yom 25

是.你可以使用reset()成员函数.

class foo {
public:
    foo()
    {
         p.reset(new bar());
    }
private:
  boost::scoped_ptr<bar> p;
};
Run Code Online (Sandbox Code Playgroud)


Mic*_*ius 6

scoped_ptr有一个方法scoped_ptr<T>::reset(T * p=0),你可以在封闭类的构造函数中调用它.