2

重複の可能性:
コンストラクターで 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 参照を初期化するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

6

コンストラクターの初期化リスト:

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

constおよび参照メンバーは、初期化リストで初期化する必要があります。この場合、メンバーは両方です。

于 2012-11-06T12:57:13.433 に答える
3

初期化リストを使用:

Bar(const Foo& foo):m_foo(foo){}
于 2012-11-06T12:57:28.127 に答える