#include <iostream>
using namespace std;
template<class T> void Swap(T &a, T &b) //交换变量的值
{
T tmep = a;
a = b;
b = tmep;
}
template<class T> T compare(T &a, T &b,T &c) //选出最大值
{
T max_num = a;
if(b > max_num)
max_num = b;
if(c > max_num)
max_num = c;
return max_num;
}
int main()
{
//change int
int a =100, b =200;
Swap(a,b);
cout<<a<<"..."<<b<<endl;
//change float
float a1 =1.1, b1= 2.2;
Swap(a1,b1);
cout<<a1<<"..."<<b1<<endl;
//change int
int a2 ,b2,c2,max;
cin>>a2>>b2>>c2;
max = compare(a2,b2,c2);
cout<<"max = "<<max<<endl;
//chage float
float a3,b3,c3,max2;
cin>>a3>>b3>>c3;
max2 = compare(a3,b3,c3);
cout<<"max2 = "<<max2<<endl;
return 0;
}
template <typename 类型参数1 , typename 类型参数2 , ...> 返回值类型 函数名(形参列表){
//在函数体中可以使用类型参数
}
typename
关键字也可以使用class
关键字替代,它们没有任何区别。