本题目要求定义类模板实现2个数的最大值、最小值、加、减、乘、除等算术运算,在main()函数中使用该类模板分别实例化为int型和double型的类,定义相关的对象,读入2个整数和2个浮点数,然后分别输出它们的最大值、最小值、加、减、乘、除的结果。
输入格式:
分别输入2组数字,第一行为2个整数,以空格分隔;第二行为2个浮点数,以空格分隔。
输出格式:
分2行分别输出整数和浮点数的运算结果,每行依次输出2个数的最大值、最小值、加、减、乘、除等算术运算。
输入样例:
30 2
2.1 3.2
结尾无空行
输出样例:
30 2 32 28 60 15
3.2 2.1 5.3 -1.1 6.72 0.65625
结尾无空行
代码:
#include <iostream>
using namespace std;//函数模板的定义
template <class T>
class A{
public:
template <class T1>//每一个模板实现不同的功能,那个数据类型他们不是重点,
//重点是显现什么功能,因为如果是数据类型他会自动转化
T1 Mas(T1 &x,T1 &y)
{
if(x>y)
return x;
else
return y;
}
template <class T2>
T2 Min(T2 &x,T2 &y)
{
if(x>y)
return y;
else
return x;
}
template <class T3>
T3 Mix1(T3 &x,T3 &y)
{
return x+y;
}
template <class T4>
T4 Mix2(T4 &x,T4 &y)
{
return x-y;
}
template <class T5>
T5 Mix3(T5 &x,T5 &y)
{
return x*y;
}
template <class T6>
T6 Mix4(T6 &x,T6 &y)
{
return x/y;
}
};
int main() {
int n,m;
cin>>n>>m;
double a,b;
cin>>a>>b;
A<int>q;//定义
A<double>p;
cout << q.Mas(n,m) << " "
<< q.Min(n,m) << " "
<< q.Mix1(n,m) << " "
<< q.Mix2(n,m) << " "
<< q.Mix3(n,m) << " "
<< q.Mix4(n,m) << endl;
cout << p.Mas(a,b) << " "
<< p.Min(a,b) << " "
<< p.Mix1(a,b) << " "
<< p.Mix2(a,b) << " "
<< p.Mix3(a,b) << " "
<< p.Mix4(a,b) << endl;
}