随着工程的增大,名称相互冲突的肯能性增加,使用多个厂商的类库时,可能导致名称冲突。为了解决这些问题,需要用到名称空间。
为了将代码加入名称空间,可以使用namespae将其包含,例如,编写一段代码,其中包含一个名为myFunction()的函数:
namespace mySpace
{
void muFunction();
}
名称空间可以是全局的,也可以位于另一个名称空间中,但是不能在代码块中。默认状态下,名称空间声明的名称链接性为外部的。除了用户定义名称空间外,另一种名称空间为全局名称空间。对应于文件级的声明区域。
名称空间也可以实现方法或函数:
#include <iostream> namespace mySpace
{
void myFunction()
{
std::cout << "my namespace, my function!" << std::endl;
}
}
为了使用自己定义名称空间中的myFunction(),可以用::(作用域解析操作符):
mySpace::myFunction();
为了使程序中的所有代码都可以使用mySpace中的myFunction()可以using指令预先指明名称空间:
#include <iostream>
using namespace mySpace; int main()
{
myFuction();
return ;
}
可以在一个源文件中包含多个using指令,快速,高效,但绝对不可以过度使用。防止再次出现名称冲突。