一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。
为了解决合作开发时的命名冲突问题,C++ 引入了命名空间(Namespace)的概念
命名空间(Namespace)就像是一个盒子,要使用盒子中的内容,必须要先打开盒子
namespace的三种使用方法
1.直接指定标识符
例如:
std::cout << std::hex << 3.4 << std::endl;
每次使用是都要调用std::
2.使用using关键字。
using std::cout;
using std::endl;
using std::cin;
声明后的类型 可以直接使用
3.using namespace std
相当于把命名空间std全部打开,std中的类型都可以使用
c和c++命名空间的区别
C中的命名空间
在C语言中只有一个全局作用域
C语言中所有的全局标识符共享同一个作用域标识符之间可能发生冲突
C++中的命名空间
命名空间将全局作用域分成不同的部分
不同命名空间中的标识符可以同名而不会发生冲突
命名空间可以相互嵌套
全局作用域也叫默认命名空间
namespace中需要注意的地方
1.namespace可以嵌套,但在使用时需要一层一层打开
2.当使用多少命名空间时,若出现相同的标识符 ,需要指明具体是哪个命名空间中的标识符