我需要在构造函数中显式初始化 std::unique_ptr 吗?

gru*_*czy 2 c++ constructor unique-ptr

我有一堂课,其中一个领域是std::unique_ptr<SomeClass>. 构造父类对象时,此字段最初未设置。我是否需要做:

field_(nullptr)
Run Code Online (Sandbox Code Playgroud)

或者这个字段会自动初始化为默认值,并且为空?

son*_*yao 5

不,你不需要它。的默认构造函数std::unique_ptr将构造一个不std::unique_ptr拥有任何东西。效果与field_(nullptr)显式初始化相同。

构造一个std::unique_ptr什么都不拥有的。值初始化存储的指针和存储的删除器。