在我正在处理的一个项目中,我有一个相当大的模板类,我已经像这样实现了:
我有我的头文件
// MyBigClass.h
#ifndef MYBIGCLASS_H
#define MYBIGCLASS_H
template <typename T>
class MyBigClass {
/* -- snip -- */
};
#include "MyBigClass.cpp"
#include "MyBigClass_iterator.cpp"
#include "MyBigClass_complicatedFunctionality_1.cpp"
#include "MyBigClass_complicatedFunctionality_2.cpp"
#endif
然后我所有的实现文件看起来基本上是这样的:
// MyBigClass_foobar.cpp
template <typename T>
void MyBigClass<T>::member_1(){
/* -- snip -- */
}
template <typename T>
int MyBigClass<T>::member_2(int foo, T & bar){
/* -- snip -- */
}
// etc, etc
在main.cpp
中,我只包括MyBigClass.h
,一切正常,编译正常。我将实现拆分为多个文件的原因是因为我更喜欢处理三个或四个 200-400 行文件,而不是一个 1200 行文件。这些文件本身的组织结构相当合理,例如仅包含嵌套类的实现或一组相互关联的成员函数。
我的问题是,这件事已经完成了吗?前几天我把这个给别人看时,我得到了一个奇怪的反应,所以我想知道这是否是一种不好的做法,或者是否有更好、更常用的方法来完成这样的事情。