这个问题在这里已经有了答案:
Is it possible to avoid repeating the class name in the implementation file?
(8 个回答)
4年前关闭。
如果在 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
文件,但是绝对允许使用 0x25181224123 的 0x25181224123 的顶部文件 0x251812241314134134关于C++: "Class namespaces"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4065563/