1、文件编写方式
(1)直接将模板类的声明和成员定义均放入一个.h文件中
(2)将模板类声明放在.h文件中(如,a.h),成员定义放入.cpp文件中(如,a.cpp);
注意:在引用的时候包含的文件是a.cpp。如在test.cpp中使用定义的模板类,则需要在该文件中
包含 #include "a.cpp"即可。
(3)使用export实现模板类的分离,但vs中不支持export的用法。暂时不能用该方法。
2、函数模板
(1)格式
template <typename T>
function declare;
e.g.
//函数模板
template <typename T>
void getPrama(T x, T y)
{
int a = ( x < y ? x : y );
printf("the template value: %d\n", a);
}
3、类模板
(1)格式
template <typename T>
class declare;
e.g.
//类模板
template <typename elemType>
class TestT
{
public:
void setInput(elemType input);
elemType getElem();
protected:
elemType x;
};
(2)成员函数的定义
template <typename elemType>
void TestT<elemType>::setInput(elemType input)
{
TestT::x = input;
}
(3)类模板的引用
//模板类
TestT<int> tt;
tt.setInput(5);
注:在应用的时候,要指定模板类的类型。