我来自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”语法,我通常在实例化对象时明确指定名称空间(即,我显示的第一个示例)。
并按下面的要求,您可以使用任意数量的名称空间。
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
为了避免说出一切,Mark Ingram已经说了一些使用命名空间的提示:
避免在头文件中使用“使用名称空间”指令-这将为导入该头文件的程序的所有部分打开名称空间。在实现文件(* .cpp)中,这通常不是大问题-尽管我更喜欢在功能级别上使用“使用名称空间”指令。
我认为名称空间主要用于避免命名冲突-不一定要组织代码结构。我主要用头文件/文件结构来组织C ++程序。
有时,较大的C ++项目中使用名称空间来隐藏实现细节。
using指令的附加说明:有些人喜欢仅对单个元素使用“ using”:
using std::cout;
using std::endl;
- 3 回答
- 0 关注
- 481 浏览
添加回答
举报
0/150
提交
取消