在通常情况下,拥有对象的生命周期与其拥有者相关联,我可以使用2种方法之一的唯一指针。 。

可以分配:

class owner
{
    std::unique_ptr<someObject> owned;
public:
    owner()
    {
        owned=std::unique_ptr<someObject>(new someObject());
    }
};

可以使用重置方法:
class owner
{
    std::unique_ptr<someObject> owned;
public:
    owner()
    {
        owned.reset(new someObject());
    }
};

为了最佳实践,我是否应该优先选择一种形式?

编辑:抱歉!我过度简化了这一点。堆分配以初始化方法而不是ctor进行。因此,我不能使用初始化程序列表。

最佳答案

the docs of unique_ptr 's operator= :



您只需要reset调用即可,因此直接调用它更简单

关于c++ - 我应该分配或重置unique_ptr吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16061407/

10-11 21:09