7-1 定义类模板实现2个数的算术运算 (12分)
本题目要求定义类模板实现2个数的最大值、最小值、加、减、乘、除等算术运算,在main()函数中使用该类模板分别实例化为int型和double型的类,定义相关的对象,读入2个整数和2个浮点数,然后分别输出它们的最大值、最小值、加、减、乘、除的结果。
分别输入2组数字,第一行为2个整数,以空格分隔;第二行为2个浮点数,以空格分隔。
分2行分别输出整数和浮点数的运算结果,每行依次输出2个数的最大值、最小值、加、减、乘、除等算术运算。
代码实例:
#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; }当然上面的代码只是帮助理解和掌握类模板和函数模板的基本使用,如果没有什么限制的话,这题本身就很简单。
#include<iostream> using namespace std; int main() { int a,b; double a1,b1; cin>>a>>b; cin>>a1>>b1; if(a>=b) cout<<a<<" "<<b<<" "; else cout<<b<<" "<<a<<" "; cout<<a+b<<" "<<a-b<<" "<<a*b<<" "<<a/b<<endl; if(a1>=b1) cout<<a1<<" "<<b1<<" "; else cout<<b1<<" "<<a1<<" "; cout<<a1+b1<<" "<<a1-b1<<" "<<a1*b1<<" "<<a1/b1<<endl; return 0; }