模板类的使用方法

来源:互联网 发布:抗日知乎 编辑:程序博客网 时间:2024/06/03 19:37

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);
注:在应用的时候,要指定模板类的类型。