C++的模板资料长篇大论,这里简要记录一下。
- 模版分为两类:
函数模板
,类模板
- 函数模版的格式
//class可以用typename代替
template <class 形参名,class 形参名,......> 返回类型 函数名(参数列表)
{
函数体
}
//样例
template <class T> void swap(T& a, T& b){}
- 类模板的格式
//class可以用typename代替
template<class 形参名,class 形参名,…> class 类名
{ ... };
//样例
template<class T> class A {
public:
T a;
T b;
T hy(T c, T &d);
};
函数模板的调用应使用实参推演来进行, 类模板的调用要直接写类型
//比如有一个函数
void h(T a, T b) { ... }
//调用的时候
h(2, 3);
//上例中的A类,定义对象时
A<int> a;
非类型形参
template<class T,int MAXSIZE> class Stack{//MAXSIZE由用户创建对象时自行设置
private:
T elems[MAXSIZE];
}
//调用时
Stack<int,20> int20Stack;
网友评论