什么是命名空间?(什么是命名空间?命名空间和类库的关系是什么?)

什么是命名空间?

C语言定义了3个层次的作用域:文件、函数和复合语句。

C++ 引入了类的作用域,类是在文件内的。

在不同的作用域中,可以定义相同名字的变量,互不干扰,编译器能够区别它们。

1、命名空间的概念

C语言中,只有一个全局作用域,所有全局标识符共享一个作用域,因此绝对不能重名。

但随着系统越来越复杂,通常不会仅由一个人来开发,不同的人开发同一个系统,不可避免地会出现变量或函数的命名冲突,当将所有人的代码结合到一起时,就会因为变量或函数重名,导致编译失败。

因此,C++提出了命名空间的概念:

命名空间将全局作用域分成不同的部分;不同命名空间的标识符可以同名,不会发生冲突;命名空间可以嵌套。

namespace Name1{ namespace Name2 { /*...*/ } /*...*/}

全局作用域也叫默认命名空间。

2、举例说明

比如现在有一个小学,学校里有六个年级,每个年级有三个班级。

现在一位老人来这个学校找到校长,要找一位叫张三的学生,感谢他在公共汽车上给自己让座。

现在校长(编译器)要找张三,但学校里有很多叫张三的人,怎么确定是哪个张三呢?

这时如果知道张三是哪个年纪,哪个班级,那么很快就能确定是谁。

假设是三年级二班的张三,那么这个三年级二班就是命名空间。

namespace grade{ namespace class { student zhang_san; }}

C++的命名空间,就是一种为了避免命名冲突的机制。

3、使用方式

C++的命名空间,有两种使用方式:

导入整个命名空间:using namespace name;只导入命名空间中的某个变量:using name::variable

// 导入整个std命名空间到当前作用域using namespace std;// 只导入cout到当前作用域using std::cout;

以上就是小编关于【什么是命名空间】的分享,希望对你有用。

与什么是命名空间?命名空间和类库的关系是什么?相关的文章


为您推荐