您如何在C ++中正确使用名称空间?

我来自Java背景,这里使用的是包,而不是名称空间。我习惯将可以一起工作的类组合成一个完整的对象放入包中,然后在该包中重新使用它们。但是现在我正在使用C ++。

您如何在C ++中使用名称空间?您是为整个应用程序创建单个名称空间,还是为主要组件创建名称空间?如果是这样,如何从其他命名空间中的类创建对象?


暮色呼如
浏览 482回答 3
3回答

守着星空守着你

命名空间本质上是软件包。它们可以这样使用:namespace MyNamespace{  class MyClass  {  };}然后在代码中:MyNamespace::MyClass* pClass = new MyNamespace::MyClass();希望能有所帮助。或者,如果您想始终使用特定的名称空间,则可以执行以下操作:using namespace MyNamespace;MyClass* pClass = new MyClass();编辑:按照bernhardrusch所说,我倾向于完全不使用“使用名称空间x”语法,我通常在实例化对象时明确指定名称空间(即,我显示的第一个示例)。并按下面的要求,您可以使用任意数量的名称空间。

慕尼黑5688855

为了避免说出一切,Mark Ingram已经说了一些使用命名空间的提示:避免在头文件中使用“使用名称空间”指令-这将为导入该头文件的程序的所有部分打开名称空间。在实现文件(* .cpp)中,这通常不是大问题-尽管我更喜欢在功能级别上使用“使用名称空间”指令。我认为名称空间主要用于避免命名冲突-不一定要组织代码结构。我主要用头文件/文件结构来组织C ++程序。有时,较大的C ++项目中使用名称空间来隐藏实现细节。using指令的附加说明:有些人喜欢仅对单个元素使用“ using”:using std::cout;  using std::endl;
打开App,查看更多内容
随时随地看视频慕课网APP