C++命名空间相关概念
2019-01-23 本文已影响0人
飘曳的舟
变量作用域分为三类:
- 声明域 2. 潜在作用域 3. 作用域
声明域> 潜在作用域 > 作用域
命名空间是一种描述逻辑分组的机制,全局变量现在可以认为是位于全局命名空间中
子命名空间必须在父命名空间内部定义,不能在外部定义
命名空间的成员变量和成员函数可以在内部声明,外部定义,也可以内部定义
命名空间的作用域解析符号为::
using 的用法
- using 编译指令 using namespace 命名空间;
这个用法的目的是对命名空间所有成员不需要完整的引用 - using 声明用法 using nampspace::成员名;
对某个特定的成员名不需要完整的引用
一般情况下,对偶尔使用的命名空间成员,应该使用命名空间的作用域解析运算符来直接给名称定位。而对一个大命名空间中的经常要使用的少数几个成员,提倡使用using声明,而不应该使用using编译指令。只有需要反复使用同一个命名空间的许多数成员时,使用using编译指令,才被认为是可取的。
有时对于长度很长的命名空间名,需要使用别名来方便使用。
using alias_name = space_name;
使用无名的命名空间,主要目的是保持代码的局部性,对于无命名的空间,成员只对当前编译的文件有效。