C++ 类实现命名空间

标签 c++ c++11 namespaces

我有文件 MyClass.hppMyClass.cpp

我的类.hpp

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

我的类.cpp

#include "MyClass.hpp"
void MyClass::method1() {
}

void MyClass::method2() {
}

我发现每次必须编写方法实现时都必须写出 MyClass:: 有点傻。是否有某种语法糖可以让我将我的所有实现组合在一起?

也许是这样的

namespace MyClass {
    void method1() {
    }

    void method2() {
    }
}

我不介意使用 C++11 功能,但我想坚持使用可移植的解决方案。

编辑:

我意识到上面编写的代码行不通。我只是用它来说明我如何想象一些语法糖可以使事情变得更方便。

最佳答案

不,这是不可能的。

唯一的方法是直接在类定义中定义您的成员函数,这使得它们内联并且可能是也可能不是您想要的。

就我个人而言,我认为在 文件中有函数定义非常值得在每个文件中输入一次类名。

关于C++ 类实现命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23423632/

相关文章:

c++ - 为什么我收到此错误 "invalid initialization of non-const reference of type ' A &' from an rvalue of type ' A'"

c++ - OpenCV中是否有任何函数可以找到两个cv::Rect的交集、并集和补集

c++ - C++0x 是否允许在函数签名中使用 decltype()?

php - 当命名空间和类在 PHP 中共享一个名称时会发生什么?

java - 使用较短的包名称来解决名称冲突

当通过其中一个删除对象时,C++ 将所有指针设置为 null

C++自动构造函数调用

c++ - Clang 和 GCC 接受有问题的 sizeof

C++ 命名空间和模板

c++ - 如何从 char[] 字符串中提取数据