我有文件MyClass.hpp
和MyClass.cpp
MyClass.hpp
class MyClass {
public:
void method1();
void method2();
};
MyClass.cpp
#include "MyClass.hpp"
void MyClass::method1() {
}
void MyClass::method2() {
}
我发现每次编写方法实现时都必须写出MyClass::
,这有点傻。是否有某种语法糖可以让我将所有实现组合在一起?
也许像
namespace MyClass {
void method1() {
}
void method2() {
}
}
我不介意使用C ++ 11功能,但我想坚持使用便携式解决方案。
编辑:
我意识到上面编写的代码不会起作用。我只是用它来说明我如何想象一些语法糖可以使事情变得更方便。
答案 0 :(得分:1)
不,这是不可能的。
唯一方式是直接在类定义中定义您的成员函数,这使它们成为inline
,可能也可能不是您想要的。
就我个人而言,我认为 source 文件中的函数定义非常值得在每个文件中输入一次类名。
答案 1 :(得分:1)
不,没有别的办法。你必须重复MyClass ::
答案 2 :(得分:0)
无法识别使用命名空间的方法。在命名空间中可以有几个类,非成员方法....由于可以在任何源文件中定义类方法(除了声明类本身的标题之外),您必须指定方法属于哪个类定义它。