当我运行下面的代码片段时,输出结果是a is 6。但是由于我使用了命名空间n1,其中也有一个叫做“a”的变量,所以输出结果不应该是a is 5吗?我错过了什么吗?
#include <iostream>
using namespace std;
namespace n1{
int a = 5;
}
int main(void){
int a = 6;
using namespace n1;
cout<<"a is "<<a<<endl;
return 0;
}
但是如果我在cout中使用完全限定名称,即cout<<"a is "<<n1::a;,输出结果如预期的那样为5。那么使用命名空间的目的是什么?
a
是 main 函数的本地变量。你必须使用n1::a
。 - user1810087