一、命名空间
1.引入
在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突, 使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,Namespace关键字的出现就是针对这种问题的。
2.定义
(1)命名空间的定义
(2)相同的命名空间可以分割在不同的文件中,编译器最后都会合成在同一个命名空间下
(3)命名空间可以嵌套
(4)没有名称的命名空间(该命名空间的内容相当于全局变量)
说明:
(1)从本质上讲,一个命名空间就定义了一个范围,在命名空间中定义的任何东西都局限于该命名空间中。
(2)没有名称的命名空间可以只创建在声明它的文件才可见的标识符。(只有在声明这个命名空间的文件中,它的成员才是可见的,它的成员可以被直接访问,不需要命名空间名称来修饰。对于其它文件,该命名空间是不可见的)。
(3)把全局名称的作用域限制在声明他的文件中的一种方式就是把它的声明为静态的,尽管C++支持全局静态,但最好的方式还是使用未命名的空间。
3.使用方式
(1)命名空间内直接使用
(2)命名空间名称限制
(3)导入命名空间
(4)使用谁引入谁
-
函数
+关注
关注
3文章
4350浏览量
63081 -
C++
+关注
关注
22文章
2114浏览量
73952 -
变量
+关注
关注
0文章
613浏览量
28504
发布评论请先 登录
相关推荐
深入C++内存管理
一文初识C++


C++笔记008:C++命名空间 namespace的作用和使用解析
命名空间的实现
python常规包与命名空间包
C++程序设计教程之C++工具的详细资料说明

C++程序设计的基础知识初步了解C++的资料免费下载

C++项目常见的命名规范
C++入坑指南
C++简史:C++是如何开始的

评论