0

Bar型の参照変数と次のようなコンストラクターを持つクラスFooがあるとします。

Foo.h:

class Foo {
  public:
    Bar& m_b;

    Foo(Bar& b);
}

Foo.cpp

Foo::Foo(Bar& b) : m_b(b) {
}

そして別のクラスで私は持っています:

// global 
Bar b; 
Foo f(b);

int main() {   
  b.setData();       // actually set some values...
  f.m_b.showData();  // will it show the change?
  return 0; 
}

fの参照変数にも、setData()が呼び出された後のデータの変更がありますか?参照変数(初期化中に設定する必要があります)を持つクラスがあるため、この回避策を試していますが、グローバルにアクセス可能である必要があります(実際にBarにデータを設定する前に宣言されています)。

4

2 に答える 2

1

はい。f.mb両方ともb同じオブジェクトを参照します。

于 2012-08-14T23:59:04.427 に答える
1

はい、そうなります。参照は単なるエイリアスです。f::m_bbまったく同じオブジェクトです。

于 2012-08-14T23:59:12.627 に答える