访问具有相同名称的变量随着在不同的范围
#include <iostream>
using namespace std;
int a = 1;
int main()
{
int a = 2;
if(true)
{
int a = 3;
cout << a
<< " " << ::a // Can I access a = 2 here?
<< " " << ::a << endl;
}
cout << a << " " << ::a << endl;
}
具有输出
3 1 1
2 1
是否有访问的“a”等于2的if语句里面,其中有一种方法的 'a' 等于3,与输出
3 2 1
2 1
注意:我知道ŧ他的应该没有完成(和代码不应该达到我需要问的地步)。这个问题更多“可以它完成”。
我不知道是否有语法(我怀疑它),但请注意,在实践中,因为两个变量都在同一个函数中,您将*总是*控制它们两个,所以你可以自由只需重命名其中一个... –
简单。重命名变量a1 a2 a3重建它现在可以工作。严重的是,即使它被允许,它也会出现在每个编码标准的不良练习部分。为每个变量使用唯一的名称。 –