很多使用std::unique_ptr
来管理类依赖关系的示例看起来像下面这样:
class Parent
{
public:
Parent(Child&& child) :
_child(std::make_unique<Child>(std::move(child))){}
private:
std::unique_ptr<Child> _child;
};
我的问题是,将_child
成员标记为const
是否会产生任何意外的副作用?(除了确保在_child
上不能调用reset()
、release()
等函数之外)。
我之所以问是因为我还没有在示例中看到过这种情况,不知道这是有意为之还是只是为了简洁性/通用性。
_child(std::move(child))
这部分没有意义。 - Igor Tandetnikconst
的unique_ptr
会因为复制被禁止且没有接受常量右值引用的构造函数而无法编译通过。 - Hatted Rooster