【发布时间】:2011-03-03 23:22:50
【问题描述】:
有
#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
有没有办法在 if 语句中访问 'a' 等于 2,其中 'a' 等于 3,输出
3 2 1
2 1
注意:我知道这不应该完成(并且代码不应该达到我需要询问的程度)。这个问题更多的是“可以做到吗”。
【问题讨论】:
-
我不知道这是否有语法(我怀疑),但请注意,在实践中,由于两个变量在同一个函数中,你会总是控制它们,所以你可以简单地重命名它们中的一个......
-
简单。重命名变量 a1 a2 a3 重建它现在可以工作了。说真的,即使它被允许,它也会出现在每个编码标准的不良实践部分。为每个变量使用唯一的名称。