C++ 中的命名空间


考虑这种情况,当我们有一个班级的两个同名人士,Zara。每当我们需要区分他们,我们肯定需要使用他们的姓名以及一些其他信息,例如所在区域(如果他们住在不同的区域),母亲或父亲的姓名等。

在你的 C++ 应用中可能会出现同样的情况。例如,你可能编写了一些代码,其中有一个名为 xyz() 的函数,而另一个库也有一个名为 xyz() 的同名函数。现在,编译器无法知道你在代码中引用的是 xyz() 函数的哪个版本。

命名空间旨在克服此困难,用作附加信息以区分名称相同且存在于不同库中的相似函数、类、变量等。使用命名空间,你可以定义名称被定义的上下文。从本质上讲,命名空间定义了作用域。

定义命名空间

命名空间定义以关键字 namespace 开头,后跟命名空间名称,如下所示 –

namespace namespace_name {
   // code declarations
}

要调用启用了命名空间的函数或变量版本,请在命名空间名称前加上 (::),如下所示 –

name::code; // code could be variable or function.

示例

 实时演示

#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;
   }
}
int main () {
   // Calls function from first name space.
   first_space::func();
   // Calls function from second name space.
   second_space::func();
   return 0;
}

输出

Inside first_space
Inside second_space

更新时间: 30-Jul-2019

231 次浏览

开始你的 职业生涯

完成课程获取认证

开始
广告