模版方法
在3中我已经说过了,C++标准库是基于模版技术构建的,complex是模版,string是模版,vector是模版,就连I/O也是模版。
在C++标准库中模版共分为2中,一种是类模板,还有一种是函数模版
模版的一般定义方式
template <类型型参表> 返回类型 类名 <类型名表>::成员函数1(型参表)
{
成员函数1定义体
}
模版函数的一般定义方式
template <类型型参表>返回类型 函数名(型参表)
{
函数定义体
}
有一句话说的比较好,一个类模版描述的是一个无限的类的集合,而程序员所看到的是这些类中的最普遍的地方。那么,C++也支持无限集合函数的概念了。
下面是一个模版函数的定义实例:
Example Code:
template <class T>
T max(T a1,T a2,T a3)
{
T temp;
if((a1 > a2) && (a1 >a3)) {temp = a1;}
else if((a2 > a1) && (a2 > a3)){temp = a2;}
else {temp = a3};
return a3;
}
就可以使用max(100,200,300);
类模版的一般定义方式
template <class T>
class A:
{
T* x;
int size;
public:
T& operator[](int);
};
就可以使用A<int> a;定义了