首先是作用域解析运算符"::".
然后让我们来了解名字空间的含义
名字空间是一种逻辑分组的机制.也就是说,如果有一些声明按照某种标准在逻辑上属于同一个集团,就可以将它们放入同一名字空间,以表明这个事实,例如,我定义一个名字空间N 将变量a, b 函数f()放入其中
int a;
namespace N{
int a, b;
void f(){
::a=1; //(被屏蔽的)全局a的限定名
a=10; //非限定名访问内层a
}
}
void g()
{
a=10; //全局的a
N::a=7; //名字空间N作用域中的a(限定名)
}
位于作用域解析运算符左边的限定符必须或者是一个名字空间的名字,或者是一个类对象的名字,
这也意味着,局部于某个函数的名字不能通过限定名的方式访问
如果还不明白参见the c++ programming language_b.s P150 8_2