2013-04-05 62 views
0

我正在使用類A的全局實例; A1;現在我在其他函數中使用這個全局變量作爲參考A & a2 = a1;這樣在本地完成的所有更改都會反映到全球。我只是想檢查a2的析構函數是否會盡快調用它的局部作用域?在C++中使用引用

請說明。

+0

什麼是您真正想要做什麼?你能指定更多嗎? – 2013-04-05 06:04:12

+0

我想在任何函數中引用和使用它時更改全局對象。在我的情況下,只要引用全局變量的任何變量超出範圍,我就想要對類的成員變量進行一些清理。 – 2013-04-05 06:29:15

+0

@ algo-geeks然後,你將不得不以不同的方式做到這一點。聽起來你正在與語言搏鬥,而不是與之合作。也許需要重新思考? – john 2013-04-05 06:54:00

回答

2

a2是一個引用,所以它沒有析構函數。

只有在程序退出時纔會調用a1的析構函數。當a2的本地範圍結束時,你期望發生什麼?

0

引用只是指針,實際上很多編譯器都會在內部將引用轉換爲指針。由於指針沒有析構函數,所以引用也是如此。因此,在函數結束時,全局對象a1將保持原樣並且只在程序結束時調用它。

感謝 尼拉吉瑞斯

+0

引用與const指針類似,不僅僅是指針。 – 2013-04-05 06:19:55