2013-04-05 80 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