我应该明确归零auto_ptr吗?

ks1*_*322 4 c++ auto-ptr

我的一些同事宁愿明确初始化std::auto_ptr0在构造函数初始化列表中,但它会被初始化为0它的构造函数没有任何明确的初始化.那么有什么理由去做吗?

#include <memory>

class A
{
  A() : SomePtr(0)
  {
  }

private:
  std::auto_ptr<SomeType> SomePtr;
};
Run Code Online (Sandbox Code Playgroud)

Arm*_*yan 9

不,默认构造函数std::auto_ptr就是这样做的,因此没有必要明确地这样做.无论如何,这是一个风格问题,你应该保持一致.例如,您是否会在构造函数初始化列表中显式调用成员向量的默认构造函数?

作为旁注,std::auto_ptr在即将推出的标准中已弃用

  • "即将来临"的标准已经发生,它现在是"最新"的标准!万岁,欢呼!当然,它尚未实施*. (4认同)
  • 应该提一下,unique_ptr是替代品 (2认同)