1. 作用域限定符
C++中的作用域解析运算符( :: )用于在全局作用域中引用局部作用域的变量或函数。
通知编译器应从作用域限定符左侧的名字所示的作用域中寻找右侧那个名字,即指定访问哪个名字空间的哪个成员。
它可以用于以下几种情况:
1、引用全局变量:如果在某个函数内部定义了与全局作用域中的变量同名的局部变量,可以使用作用域解析运算符来引用全局变量。
2、引用类的静态成员:如果在类的内部定义了静态成员变量或静态成员函数,可以使用类名加上作用域解析运算符来引用类的静态成员。
1.1 名字空间
通过作用域限定符,可以访问指定名字空间中的变量。
cout << a << endl ; // 1 就近原则
cout << ::a << endl ; // :: 是匿名名字空间 ,先找全局变量,再找其他名字空间,不会找main函数中的变量
using namespace my_space; 名字空间声明,只有当声明名字空间之后,才能去访问指定名字空间中的变量
cout << my_space::a <<