重名冲突
#include<iostream>
namespace a
{
int TestName = 5;
}
namespace b
{
int TestName=8;
}
int main()
{
int TestName=9;
std::cout<<TestName<<" "<<a::TestName<<" "<<b::TestName<<std::endl;
return 0;
}
运行效果如下:
正行运行打印了局部和命名空间a,b中的相同变量TestName,没有发生冲突
如代码修改如下:
int main()
{
using namespace a;
using namespace b;
std::cout<<TestName
return 0;
}
运行错误如下
同时释放名字空间a,b, 同时不用a::/b::进行控制的话,就会出现以上错误,编译器没办法定位到底改链接哪个空间的TestName变量。