读书人

名字空间的有关问题

发布时间: 2012-08-11 20:50:31 作者: rapoo

名字空间的问题
#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;

读书人网 >C++

热点推荐