namespace通常用来给类或者函数做个区间定义,以使编译器能够准确定位到适合的类或者函数,比如自行实现了一个函数test(void),而在该项目的库函数内也定义了一个函数test(void),当调用test()函数的时候,编译器就困惑了,该调用哪个呢?这个时候namespace的作用就显现出来了,namespace的定义用法,
namespace namespace_name {
//code declarations
//函数,类名等
}
namesapce 对应的调用方法:
name::code;//此处code就是对应的namesapce内定义的类名或者函数等等
示例
#include <iostream>
using namespace std;
//first name space
namespace first_space{
void func(){
cout<<"Inside first_space"<<endl;
}
}
//second name space
namespace second_space{
void func(){
cout<<"Inside second_space"<<endl;
}
}
using namespace first_space;//这里指定使用第一个first_space
int main()
{
//call function from first name space
first_space::func();
second_space::func();
func();//此处已经强调使用第一个命名空间,所以第一处命名空间的空间名都可以省略不写
return 0;
}