先来复习一下名称空间的属性。
1、声明区域:可以在其中进行声明的区域。
eg:
在函数外面声明全局变量,对于这种变量,其声明区域为其声明的所在的文件。
2、潜在作用区域:从声明点开始,至其声明区域的结尾。
3、作用域:变量对程序而言的可见的范围。
名称空间:
一个名称空间中的名称不会与另一个名称空间中的相同名称发生冲突,同时允许程序的其他部分使用该名称空间中声明的东西。
举个通俗的例子:
一班有个叫张三,二班也有个叫张三,这是一班张三和二班张三是不冲突的,因此一班、二班就是命名空间。
名称空间可以是全局的,也可以位于另一个名称空间,但不能位于代码块中。因此,在默认情况下,在名称空间中声明的名称的链接性为外部的(除非引用常量)。
全局名称空间:
对应于文件级声明区域,对于全局名称空间中的某个变量或者函数,可以使用::(作用域解析运算符)来指定,::前没有此名称空间的名称:char fetch; int main(){ cin >> ::fetch; return 0; }。
未限定名称与限定名称
未限定名称: