C++命名空间相关概念

变量作用域分为三类:

  1. 声明域 2. 潜在作用域 3. 作用域

声明域> 潜在作用域 > 作用域

命名空间是一种描述逻辑分组的机制,全局变量现在可以认为是位于全局命名空间中

子命名空间必须在父命名空间内部定义,不能在外部定义
命名空间的成员变量和成员函数可以在内部声明,外部定义,也可以内部定义

命名空间的作用域解析符号为::
using 的用法

  • using 编译指令 using namespace 命名空间;
    这个用法的目的是对命名空间所有成员不需要完整的引用
  • using 声明用法 using nampspace::成员名;
    对某个特定的成员名不需要完整的引用

一般情况下,对偶尔使用的命名空间成员,应该使用命名空间的作用域解析运算符来直接给名称定位。而对一个大命名空间中的经常要使用的少数几个成员,提倡使用using声明,而不应该使用using编译指令。只有需要反复使用同一个命名空间的许多数成员时,使用using编译指令,才被认为是可取的。

有时对于长度很长的命名空间名,需要使用别名来方便使用。
using alias_name = space_name;

使用无名的命名空间,主要目的是保持代码的局部性,对于无命名的空间,成员只对当前编译的文件有效。

你可能感兴趣的:(C++命名空间相关概念)