在一个项目中我的工作,我有我已经这样实行了相当大的模板类:#include'.cpp模板实现文件是一种不好的做法吗?
我有我的头文件
// 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行文件。这些文件本身在逻辑上是相当组织的,例如只包含嵌套类的实现或者一组相关的成员函数。
我的问题是,这是做什么?当我前几天向某人展示这件事时,我得到了一个奇怪的反应,所以我想知道这是否是一种不好的做法,或者是否有更好,更普通的方式来完成这样的事情。
感谢您的回答,'.ipp'好像它是去 – 2012-07-19 21:09:44