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にデータを設定する前に宣言されています)。