C++篇:第十章_命名空间_知识点大全
C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器
十、命名空间
-
命名空间可以在全局作用域或其他命名空间内部定义,但不能在函数、结构体或类内部定义,且要保证同一命名空间之间不会出现名字冲突
-
在命名空间中定义的名字可以被命名空间中其他成员直接访问,命名空间外部的代码必须指出名字定义在哪个命名空间
-
命名空间是累积的,一个命名空间可以分散在多个文件中
-
定义在全局作用域的名字是定义在全局命名空间中的;全局命名空间存在于每个程序中,是隐式的
-
定义命名空间时若没给出命名空间名字,称为未命名空间,其中定义的名字可以直接使用(没有命名空间的名字来限定他们)
-
未命名空间可以在给定文件中不连续,但不能跨越文件;每个文件有自己的未命名的命名空间,本质上一个文件中所有未命名的命名空间被系统用同一个标识符代替,且区别于其他文件的标识符
-
未命名的命名空间中定义的名字只在包含该命名空间的文件中可见。如果另一文件包含一个未命名的命名空间,两个命名空间不相关,则可以定义相同名字的实体
-
namespace只能在全局范畴定义,但他们之间可以互相嵌套
-
一个namespace可以用另一个名字来作为别名
-
由于C语言无命名空间,因此用带后缀. h的头文件时不必用“using name space station;”