假设我有一个类 Foo,它具有抽象类 Bar 的 const 成员,在构造函数中传递 Bar 以初始化 const 成员的正确方法是什么?
class Foo
{
public:
Foo(?Bar? bar): bar(?bar?) {};
private:
const ?Bar? bar;
}
在 C++11 中,我想像这样使用 std::unique_ptr :
class Foo
{
public:
Foo(std::unique_ptr<Bar> &bar): bar(std::move(bar)) {};
private:
const std::unique_ptr<Bar> bar;
}
这是最好的方法吗?还有哪些其他方法以及我应该何时使用它们?