【发布时间】:2011-08-13 00:14:34
【问题描述】:
我知道如果一个变量是全局变量,你总是可以通过在变量名前面加上 ::... 来访问它的值,但是有没有办法访问已经隐藏在另一个范围内的局部变量的值?
我在想这样的事情:
void f() {
int x = 1;
{
int x = 2;
//access the value of the variable x (with the 1 in it) inside here
}
}
如果语言不支持这一点,那么我完全可以接受一些 hacky 解决方案。
【问题讨论】:
-
这称为遮蔽,您不能“取消遮蔽”外部
x来引用它。哈克解决方案是-Wshadow -Werror。