說我有一個類Foo類型欄的參考變量和像這樣構造:C++設置參考變量在類和事後改變
foo.h中:
class Foo {
public:
Bar& m_b;
Foo(Bar& b);
}
Foo.cpp中
Foo::Foo(Bar& b) : m_b(b) {
}
,並在單獨的I類有:
// 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;
}
在調用setData()之後,f中的引用變量是否也具有該數據的變化?我正在嘗試這種解決方法,因爲我有一個具有引用變量的類(它必須在初始化期間設置),但我需要它是全局可訪問的(在Bar中實際設置數據之前聲明)。
有點偏離主題,但包含參考變量的全局可用類聞起來很有趣。如果你不能避免全局,你可以使它成爲一個非const引用,並使用f.setData()? – Zero 2012-08-15 00:06:05