我有一個由幾個函數和很多操作符組成的類。幾乎所有的函數和操作符都使用模板,這就是爲什麼我在頭文件中實現它們的原因。 這使得很難在代碼中找到某些東西,所以我決定將所有的操作符都移動到一個單獨的頭文件中。可以在多個頭文件中拆分類嗎?
現在我有這樣的:
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