c++ 一些模板总结和反思
template.h
template <typename T>class Test{
public:
T testFunction();
template <typename D>
void printD(D data);
};
template <typename T>
template <typename It>
void Test<T>::printD(It data) {
}
template.cpp
#include "template.h"
template <typename T>
T Test<T>::testFunction() {
}
//explicit instantation
template class Test<int>;
注意类模板内的成员模板则必须要在一个文件中,如果定义的是成员函数则不必
再就是c++ 的一个控制实例化问题
比如说类模板的显示实例化
template class Test<int>;
就是在编译器就已经实例化了,如果我们告诉编译器已经在别的位置被显示实例化了,可以使用extern
extern template class Test<int>;