初始化具有给定值的复制构造函数的const成员

Initialize a const member without a copy constructor with a given value?

本文关键字:复制 构造函数 const 成员 初始化      更新时间:2023-10-16

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

我有这个课:

class Foo {
private:
    ...
public:
    Foo() : ... {}
    // no other constructors
    ...
};

和另一个通过参考来容纳foo成员的人:

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

我的问题是:如何在构造函数上初始化bar :: m_foo参考?

谢谢!

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

Bar(const Foo& foo) : m_foo(foo)
{
}

const和参考成员必须在初始化列表中初始化,在这种情况下,成员都是。

使用初始化列表:

Bar(const Foo& foo):m_foo(foo){}