在 C++ 中使用 class 的命名空间定义 class 的成员

Define members of a class using class's namespace in c++

我有几个 类 长名字和他们的成员函数。在 C++ 中,有一个技巧允许您使用一个命名空间并声明函数:

namespace_name::foo();

并这样定义它:

namespace namespace_name{
    foo() {}
}

为了代码的清晰,我想知道是否有类似的方法来替换函数的定义:

LongClassName::LongFunctionName() {}

对不起,如果我使用了不当的词汇,但不知道如何描述问题。

In C++ there is a trick which allows you to use one namespace and turn

此 "trick" 允许您调用函数而无需指定带命名空间的完整函数名称。对于既不适用于命名空间也不适用于 class 的函数定义。对于名称空间级别的函数,您要么必须将该函数定义放在名称空间中,要么明确提及:

 namespace foo {
     void bar(); // foo::bar() declared
 }

 // you can define it as this
 namespace foo {
     void bar() {}
}

// or this
void foo::bar() {}

// this does not work
using namespace foo;
void bar() {} // ::bar() is defined here not foo::bar()

用于 class 方法定义 - 必须始终使用 class 名称(如果有的话,也可能使用命名空间),除非您在 class 本身内部定义它们(并声明它们 inline隐式):

class VeryLongName {
public:
    void method1() {}
    void method2() {}
};