1、定义命名空间
命名空间的定义使用关键字 namespace,后跟命名空间的名称,如下所示:
namespace namespace_name {
// 代码
}
在调用带有命名空间的函数或变量,需要在前面加上命名空间的名称,如下所示:
name::var; // var 可以是变量或函数
例如,
#include <iostream> using namespace std; // 第一个命名空间 namespace my_space1{ void func(){ cout << "不同命名空间的同名函数(my_space1)" << endl; } } // 第二个命名空间 namespace my_space2{ void func(){ cout << "不同命名空间的同名函数(my_space2)" << endl; } } int main () { // 调用第一个命名空间中的函数 my_space1::func(); // 调用第二个命名空间中的函数 my_space2::func(); return 0; }
2、using 关键字
可以使用 using namespace
指令,这样在使用命名空间时就可以不用在前面加上命名空间的名称。这个指令会告诉编译器,后续的代码将使用指定的命名空间中的名称。
例如,
#include <iostream> using namespace std; // 第一个命名空间 namespace my_space1{ void func(){ cout << "不同命名空间的同名函数(my_space1)" << endl; } } // 第二个命名空间 namespace my_space2{ void func(){ cout << "不同命名空间的同名函数(my_space2)" << endl; } } using namespace my_space1; int main () { // 调用第一个命名空间中的函数 func(); // 调用第二个命名空间中的函数 my_space2::func(); return 0; }