C++命名空间相关概念

变量作用域分为三类:

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

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

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

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

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容