C++的模板有一个较大的缺陷,模板的实现是不能放到独立的cpp文件中的,因为模板函数的特点,必须要类型确定时才能泛化。
例如下面的例子:
// CObject.h
template<class T>
class CObject
{
public:
CObject(T k) {obj = k;}
~CObject() {}
T getObj();
private:
T obj;
};
// CObject.cpp
#include "CObject.h"
template<class T>
T CObject<T>::getObj(){
return this->obj;
}