#include<iostream>
using namespace std;
template<typename T>
//函数模板
T maxr(T a,T b){
return a>b?a:b;
}
template<typename T>
//类模板
class test{
private:
T a,b;
static string name;
public:
//构造函数
test(T a,T b){
this->a=a;
this->b=b;
}
//析构函数
~test(){
cout<<"析构函数结束!"<<endl;
}
//拷贝函数 (此处是浅拷贝)
test(const test &c){ //此处是对象的引用
this->a=c.a;
this->b=c.b;
}
T maxt(){
return a>b?a:b;
}
T sumt(){
return a+b;
}
};
int main()
{
//函数模板调用
double a,b;
cout<<"输入a和b:";
cin>>a>>b;
cout<<"最大值是:"<<maxr(a,b)<<endl;
//类模板调用
test<double> t(a,b);
cout<<"最大值是:"<<t.maxt()<<endl;
cout<<"sum和是:"<<t.sumt()<<endl;
//拷贝函数使用 ---- 用在对象赋值时
test<double> x(t);
cout<<"拷贝了的x对象的最大值是:"<<x.maxt()<<endl;
cout<<"sum和是:"<<x.sumt()<<endl;
return 0;
}