模板:实现代码重用机制
图1 模板、模板类、模板函数和对象之间的关系
一、函数模板:建立通用函数,函数返回类型和形参不具体指定,用模板实参实例化的函数称为模板函数。
template <typename T> //T为类型参数
T max(T x,T y){
return(x>y)?x:y;
};
非函数模板重载>函数模板重载
二、类模板
template <template 类型参数>
class 类名{
类成员声明
};
类模板定义对象:
类模板名 <实际类型名> 对象(实参列表)
举例:
#include <iuostream>using namespace std;
template<typename T>
class Three{
public:
Three{T a, T b,T c)
{z=a;y=b;z=c};
T sum()
{return x+y+z;};
private:
T x,y,z;
};
int main(){
Three <int> sum3_1(3,5,7);
Three <double> sum3_2(12.34,56.78,78.12);
cout<<"三个整数之和为:"<<sum3_1.sum()<<endl;
cout<<"三个双精度之和为: "<<sum3_2.sum()<<end;
return 0;
}
类模板体外定义的成员函数:
template<typename T>
T Three<T>::sum()
{return x+y+z;
}