首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于名字空间有关问题

2012-02-22 
关于名字空间问题在c++primer中,namespaceblip{intbi16,bj15,bk23}intbj0voidmanip(){usingblip::bi

关于名字空间问题
在c++primer中,

namespace   blip{
int   bi=16,bj=15,bk=23;
}

int   bj=0;

void   manip(){

using   blip::bi;

++bi;

using   blip::bj;

++bj;//ok,使用了blip::bj


而在另一段代码中:
namespace   blip{

int   bi=16,bj=15,bk=23;

}

int   bj=0;


void   manip(){

using   namespace   blip;

++bj;//错误:二义性:全局bj还是blip::bj?????


这是怎么回事?




[解决办法]
using namespace blip,只是声明了名称空间blip;告诉编译器blip是名称空间,而代码中使用的using blip::bj明确的告诉编译器我要使用名称空间的BJ变量。
前一种声明当然会造成误会。

热点排行