#include <iostream>
namespace first
{
int x = 1;
}
namespace second
{
int x = 2;
}
int main()
{
int x = 0;
std::cout <<x<<'\n';
std::cout <<first::x<<'\n';
std::cout <<second::x<<'\n';
using namespace first;
std::cout <<x<<'\n';
}
当我运行代码时,答案将是0
1
2
0
我不明白为什么在首先使用命名空间之后,<
因为最后一个cout中使用了局部x变量。同名的局部变量会影响全局变量。