第一种情况
没有使用namespace定义空间,当前空间就是一个公共空间。
例如一个有namespace的文件引入了一个没有namespace的文件程序,没有namespace的文件空间就是公共空间,在namespace文件里边可以通过\斜杠直接访问公共空间元素
a) function getName(){} ------公共空间的元素
b) namespace beijing;
c) function getName(){} -----beijing空间的元素
第二种情况
当前文件没有namespace、但是引入的文件有namespace,当前文件就是公共空间,引入文件有自己空间
公共空间有两种情况:
1.当前有空间,引入没有空间(公共空间)
a) 默认使用当前空间的元素
b) 统一\斜杠引入公共空间元素
2.当前没有空间(公共空间),引入有空间
a) 默认调用当前公共空间的元素(非限定名称)
b) 使用有公共空间的元素 (限定名称、完全限定名称)
命名空间使用注意:
- 针对类名、函数名、常量const起作用
① define()定义的常量不受命名空间限制
- 声明namespace的当前脚本的第一个命名空间前面不能有任何代码(header头代码也要写在下边)
- 命名空间是虚拟抽象的空间,不是真实存在的目录
- 当前文件可以include具有命名空间的文件,默认空间是当前文件的公共空间
- 元素调用分:非限定名称、限定名称、完全限定名称
时间: 2025-01-11 00:48:13