C++ 中的命名空间和类之间的区别


在本文中,我们将介绍 C++ 中命名空间和类之间的差异。命名空间和类是两个不同的概念。类是数据类型。类基本上是结构的扩展版本。类可以包含成员数据和函数,但命名空间可以通过将变量和函数分组到一个命名空间中来包含它们。

命名空间不能作为对象创建。此概念用作区分相似函数、类、变量等的附加信息。名称相同的变量和函数可以放在不同的命名空间中。

现在,让我们指出命名空间和类的几个重要区别。

  • 命名空间用于对一些标识符进行分组,以免出现冲突。通过使用类,我们必须创建一个该类的实例,但对于命名空间则不然。

  • 我们对命名空间使用“using”声明。对于类,除非我们从其中派生,否则这是不可能的。

  • 我们可以重新打开命名空间并在不同翻译单元中添加更多元素。这不能使用类来实现。

namespace my_namespace {
   int function1();
}
namespace my_namespace {
   int function1();
}
  • 对于类,以下代码是不好的

class my_class {
   int function1();
};
class my_class {
   int function1();
};
  • 我们可以使用未命名命名空间(这是可以的),但我们不能使用未命名的类,这样会产生错误。

namespace{ //Legal
   int function1();
};
class { //create error
   int function1();
};

更新日期:2019 年 7 月 30 日

5 千+ 浏览量

开启你的 职业生涯

完成本课程并获得认证

立即开始
广告