2012-08-14 32 views
0

說我有一個類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中實際設置數據之前聲明)。

+0

有點偏離主題,但包含參考變量的全局可用類聞起來很有趣。如果你不能避免全局,你可以使它成爲一個非const引用,並使用f.setData()? – Zero 2012-08-15 00:06:05

回答

1

是的。 f.mbb都指向相同的對象。

+0

謝謝!我只是想確定一下,因爲這是一個更大的計劃的一部分。 – Aaron 2012-08-15 00:01:14

1

是的。參考只是一個別名。 f::m_bb完全相同的對象

+0

謝謝澄清! – Aaron 2012-08-15 00:04:47