如果在 C++ 中我有一个类 longUnderstandableName
。对于那个类,我有一个包含其方法声明的头文件。在类的源文件中,我不得不写longUnderstandableName::MethodA
、longUnderstandableName::MethodB
等等,无处不在。
我能否以某种方式使用命名空间或其他东西,这样我就可以只在类源文件中编写 MethodA
和 MethodB
了吗?
最佳答案
typedef longUnderstandableName sn;
然后你可以定义方法为
void sn::MethodA() {}
void sn::MethodB() {}
并将它们用作
sn::MethodA();
sn::MethodB();
这仅适用于 longUnderstandableName
是一个类的名称。即使该类被深深嵌入到其他命名空间中,它也能正常工作。
如果 longUnderstandableName
是命名空间的名称,那么在你要使用方法的命名空间(或源文件)中,可以写
using namespace longUnderstandableName;
然后调用类似的方法
MethodA();
MethodB();
您应该注意不要使用 using namespace foo;
在头文件中,因为它会污染每个 .cpp
我们的文件 #include
将头文件放入,但是使用 using namespace foo;
在 .cpp
的顶部文件绝对是允许和鼓励的。
关于C++: "Class namespaces"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4065563/