开发手册 欢迎您!
软件开发者资料库

C++ 命名空间

C++ 命名空间是对标识符的名称进行本地化,以避免命名冲突。在C++ 中,变量、函数和类都是大量存在的。如果没有命名空间,这些变量、函数、类的名称将都存在于全局命名空间中,会导致很多冲突。本文主要介绍C++ 命名空间。

1、定义命名空间

命名空间的定义使用关键字 namespace,后跟命名空间的名称,如下所示:

namespace namespace_name {
// 代码
}

在调用带有命名空间的函数或变量,需要在前面加上命名空间的名称,如下所示:

name::var; // var 可以是变量或函数

例如,

#include 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 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;}