在没有具有给定值的复制构造函数的情况下初始化const成员?

uv_*_*uv_ 2 c++ constructor const copy-constructor

可能重复:
如何在构造函数中初始化const字段?

我有这门课:

class Foo {
private:
    ...
public:
    Foo() : ... {}
    // no other constructors
    ...
};
Run Code Online (Sandbox Code Playgroud)

另一个通过引用持有Foo成员的人:

class Bar {
private:
    const Foo& m_foo;
    ...
public:
    Bar(const Foo& foo);
    // no other constructors
};
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何在构造函数中初始化Bar :: m_foo引用?

谢谢!

Luc*_*ore 6

在构造函数初始化列表中:

Bar(const Foo& foo) : m_foo(foo)
{
}
Run Code Online (Sandbox Code Playgroud)

const必须在初始化列表中初始化引用成员,在这种情况下,成员都是.

  • @David都没有,因为m_foo是一个引用.没有构造新对象,您只是对现有对象进行别名. (2认同)