名字空间的问题
#include<iostream>
namespace a
{
int b=5;
}
namespace c
{
int b=8;
}
int main()
{
using name space a;
using namespace c;
std::cout<<b<<std::endl;
return 0
}
名字空间为什么不会互顶呢,这样的话不是很容易错吗?
[解决办法]
代码中声明了a和c两个命名空间都使用,下面这句自然出错,
std::cout<<b<<std::endl; 明显这一句中的了有二义性,无法知道b是namespace a还c下的,使用前要加上命名空间说明用的是哪一个空间下的b,改成:
std::cout<<a::b<<std::endl;或
std::cout<<c::b<<std::endl;