鉴于拥有对象的生命周期与其所有者相关联的常见情况,我可以使用以下两种方式之一的唯一指针。.
它可以分配:
class owner
{
std::unique_ptr<someObject> owned;
public:
owner()
{
owned=std::unique_ptr<someObject>(new someObject());
}
};
可以使用reset方法:
class owner
{
std::unique_ptr<someObject> owned;
public:
owner()
{
owned.reset(new someObject());
}
};
为了最佳实践,我应该更喜欢一种形式而不是另一种形式吗?
编辑:对不起,伙计们。我过度简化了这一点。堆分配发生在初始化方法中,而不是在 ctor 中。因此,我不能使用初始化列表。