在
C/C++
中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存
在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是
对标识符的名称进行本地化
,
以
避免命名冲突或名字污染
,
namespace
关键字的出现就是针对这种问题的
#include <stdio.h>
#include <stdlib.h>
int rand = 10;
// C语言没办法解决类似这样的命名冲突问题,所以C++提出了namespace来解决
int main()
{
printf("%d\n", rand);
return 0;
}
// 编译后后报错:error C2365: “rand”: 重定义;以前的定义是“函数”
1
命名空间定义
定义命名空间,需要使用到
namespace
关键字
,后面跟
命名空间的名字
,然
后接一对
{}
即可,
{} 中即为命名空间的成员。
// 1.
命名空间中可以定义变量
/
函数
/
类型
//2.
命名空间可以嵌套
//3.
同一个工程中允许存在多个相同名称的命名空间
,
编译器最后会合成同一个命名空间中。
2
命名空间使用
命名空间的使用有三种方式:
1.加命名空间名称及作用域限定符
2.使用
using
将命名空间中某个成员引入
3.使用
using namespace
命名空间名称 引入