函数模板
函数模板是建立一个通用的函数,函数类型和形参不具体指定,用一个虚拟类型代替,这个通用函数称为函数模板。
例子:
#include<iostream>
using namespace std;
template <typename T>
T Max(T a,T b,T c)
{
if(a<b) a = b;
if(a<c) a = c;
return a;
}
int main()
{
int i1= 3, i2= 5, i3 = 9;
double d1 = 3.94, d2 = 8.10,d3 = 27.90;
cout<<Max(i1,i2,i3)<<endl;
cout<<Max(d1,d2,d3)<<endl;
return 0;
}
类模板
对于多个类,功能是相同的,仅仅是数据类型不同,可以使用类模板。
例子
#include<iostream>
using namespace std;
template <class T>
class Compare
{
public:
Compare(T a,T b):x(a),y(b){}
~Compare(){}
T Max(){return (x>y)? x:y;}
T Min(){return (x<y)? x:y;}
private:
T x,y;
};
int main()
{
Compare<int>comp(3,7);
cout<<comp.Max()<<endl;
Compare<float>comp1(13.93,7.29);
cout<<comp1.Min()<<endl;
}