命名空间的域运算符::及全局变量
命名空间和函数前面加上::。
经常看到命名空间前就只有::
比如:::a;这种代表是全局的test
比如:::f(),代表使用系统API也就是全局的
避免使用到局部定义的命名空间或者函数。
例如:
#include <iostream>
using namespace std;
namespace A
{
int a = 100;
namespace B //嵌套一个命名空间B
{
int a =20;
}
}
int a = 200;//定义一个全局变量
int main(int argc, char *argv[])
{
cout <<"A::a ="<< A::a << endl;
cout <<"A::B::a ="<<A::B::a << endl;
cout <<"a ="<<a << endl;
cout <<"::a ="<<::a << endl;
int a = 30;
cout <<"a ="<<a << endl;
cout <<"::a ="<<::a << endl;
return 0;
}
全局变量a表达为::a,用于当有同名的局部变量时来区别两者。

浙公网安备 33010602011771号