目录
初识C++
刚进入C++的学习,大家可能首先会看到这样一段代码。
using namespace std;
这段代码的意思是命名空间展开。其中using是展开,std(standard)代表C++标准库,而namespace则代表命名空间域。在首行代码写下#include<iostream>后,再配合这段代码,就可以直接使用cout、cin等C++标准库里的函数。如果不写这段代码直接用IO流头文件。在使用cin、cout等函数时就要使用限定访问操作符::,例如C++标准库下打印1,就要写成:
std::cout<<1<<std::endl;
命名空间的作用
命名空间域能规避同名冲突
命名空间的作用有很多,它能在不同的域里定义相同的函数,自定义类型。它能规避自定义类型重名引发冲突的问题,还能在多个域中自由调用(前提是不能展开,展开只是对于调用频繁,且代码量少的代码中有所帮助,随意展开相当于没有设置命名空间。当然,我们也可以采用局部展开的方式:
using af::a
这样就相当于将命名空间域af里的自定义类型a给展开了,在使用时就不用再加上限定访问操作符::了。
命名空间域不影响生命周期
与全局域和局部域不同,命名空间域和之后要学的类域不会影响生命周期。但需要注意的是,命名空间域和类域中的自定义类型一般是全局变量。且不能定义在函数内部,但可以相互嵌套定义。