为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
暮色呼如 2019-10-04 15:55:50
我来自Java背景,这里使用的是包,而不是名称空间。我习惯将可以一起工作的类组合成一个完整的对象放入包中,然后在该包中重新使用它们。但是现在我正在使用C ++。您如何在C ++中使用名称空间?您是为整个应用程序创建单个名称空间,还是为主要组件创建名称空间?如果是这样,如何从其他命名空间中的类创建对象?
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

命名空间本质上是软件包。它们可以这样使用:


namespace MyNamespace

{

  class MyClass

  {

  };

}

然后在代码中:


MyNamespace::MyClass* pClass = new MyNamespace::MyClass();

希望能有所帮助。


或者,如果您想始终使用特定的名称空间,则可以执行以下操作:


using namespace MyNamespace;


MyClass* pClass = new MyClass();

编辑:按照bernhardrusch所说,我倾向于完全不使用“使用名称空间x”语法,我通常在实例化对象时明确指定名称空间(即,我显示的第一个示例)。


并按下面的要求,您可以使用任意数量的名称空间。


查看完整回答
反对 回复 2019-10-04
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

为了避免说出一切,Mark Ingram已经说了一些使用命名空间的提示:


避免在头文件中使用“使用名称空间”指令-这将为导入该头文件的程序的所有部分打开名称空间。在实现文件(* .cpp)中,这通常不是大问题-尽管我更喜欢在功能级别上使用“使用名称空间”指令。


我认为名称空间主要用于避免命名冲突-不一定要组织代码结构。我主要用头文件/文件结构来组织C ++程序。


有时,较大的C ++项目中使用名称空间来隐藏实现细节。


using指令的附加说明:有些人喜欢仅对单个元素使用“ using”:


using std::cout;  

using std::endl;


查看完整回答
反对 回复 2019-10-04
  • 3 回答
  • 0 关注
  • 481 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信