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

标签 c++ constructor constants copy-constructor

<分区>

Possible Duplicate:
How to initialize a const field in constructor?

我有这门课:

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 和引用成员必须在初始化列表中初始化,在这种情况下该成员是两者。

关于c++ - 在没有给定值的复制构造函数的情况下初始化 const 成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13251552/

相关文章:

C++ - 将 istream_iterator 与 wstringstream 一起使用

c++ - 使用 sqlite 和 c++ 对数据库表进行实际排序的最佳方法?

perl - 我可以对要迭代的常量进行分组吗?

c - const 关键字的这种用法是否符合其意图?

c++ - 任意类的 const 和非 const 成员函数的模板包装器

c++ - 如果在没有 QDebug 消息的情况下运行,Qt 应用程序会崩溃

C++ 异常未被捕获

javascript - 为什么在这种情况下 `.constructor` 指向 `object` ?

c++ - 从类模板继承模板化构造函数?

javascript - 确定构造函数是否在 JavaScript 构造函数设计模式中的同一元素上调用