函数模板
#include"stdafx.h"
#include<iostream>
using namespace std;
template <typename T>
T add(T &a,T &b)
{
return a + b;
}
int main(int argc, char* argv[])
{
int a = 5, b = 6;
cout << add<int>(a, b) << endl; //这里也可以不指定int 不会报错,但是加上会更加明确带入参数的类型
double c = 5.3, d = 6.8;
cout << add<double>(c, d) << endl;
getchar();
return 0;
}
模板类
模板类的代码只能在.h头文件中
//template <typename T>也可以使用typename
template <class T>//在类的前面加这一句
class Vector
{
private:
DWORD m_dwIndex;//下一个可用索引
T m_dwLen;//当前容器的长度
DWORD m_dwIncrement;//每次增容的大小
DWORD m_dwInitSize;//默认初始化大小
DWORD* m_pBuffer;//容器指针
public:
Vector();
//ector(DWORD dwReInitSize);
DWORD Push_back(T dwElement);
// DWORD At(DWORD dwIndex);
// virtual ~Vector(void);
};
template <class T>
Vector<T>::Vector()
{
m_dwIndex=0;
}
template <class T>
DWORD Vector<T>::Push_back(T dwElement)//函数在类外实现时需要这样写。不能像类一样写在cpp之中。
{
return 0;
}
//使用类模板
int main(int argc, char* argv[])
{
Vector <int> v;
getchar();
return 0;
}