我有一个由几个函数和很多操作符组成的类。几乎所有的函数和操作符都使用模板,这就是为什么我在头文件中实现它们的原因。 这使得很难在代码中找到某些东西,所以我决定将所有的操作符都移动到一个单独的头文件中。可以在多个头文件中拆分类吗?
现在我有这样的:
fstring.h
class fstring{
...
#include "fstring_operators.h"
}
和fstring_operators.h
...
template<int RSIZE>
bool operator==(const fstring<RSIZE>& rhs) const {
return equals(rhs._chars, RSIZE);
}
...
是否确定做这样的事情?我也忽略了fstring_operators.h的头文件,因为它除了fstring.h之外不能包含在任何地方。
这绝对有可能,但如果没有适当的文档,可能会让您更难以理解您的课程。例如,仅仅扫描类声明以查看它是否有一些特殊的方法或操作符并不容易。 – 2012-04-10 12:20:00
我不知道这是否是“最佳做法”,但我认为这很好,可能有助于保持代码清洁。虽然作为一般规则,并没有看具体案例,但如果你太需要它,这可能意味着你的班级设计可以变得更好。 – ShinTakezou 2012-04-10 12:20:51
一种选择是只需要声明的成员函数的类定义中,然后之后(无论是在相同的标题,或另一个)中定义它们。这样可以更轻松地找到定义,而无需跳到不同的文件,也无需介绍只能包含在特殊位置的文件。 – 2012-04-10 12:23:28