关于函数模板, 是在函数重载的基础上的进阶吧。
样式:
template<typename 数据类型参数标识符>//tymplate也可用class代替
返回类型 函数名(参数表)
{
函数体
}
例如:
template<typename T> T HANSHU(T x) { 函数体 }//T是参数类型标识符,在主函数中要被实参替换
面向对象程序设计上机练习二(函数模板)
Time Limit: 1000MS Memory Limit: 65536KBProblem Description
利用数组和函数模板求5个数最大值(分别考虑整数、单精度、长整数的情况)。Input
分别输入5个int型整数、5个float 型实数、5个long型正整数。Output
分别输出5个int型整数的最大值、5个float 型实数的最大值、5个long型正整数的最大值。Example Input
11 22 666 44 55 11.11 22.22 33.33 888.88 55.55 1234567 222222 333333 444444 555555Example Output
666 888.88 1234567Hint
Author
#include<bits/stdc++.h> using namespace std; template <class T> T mmax(T a[]) { T maxx = 0; for(int i = 0; i < 5; i++) { if(a[i] > maxx) maxx = a[i]; } return maxx; } int main() { int a[5]; float b[5]; long c[5]; for(int i = 0; i < 5; i++) { cin>>a[i]; } cout<<mmax(a)<<endl; for(int i = 0; i < 5; i++) { cin>>b[i]; } cout<<mmax(b)<<endl; for(int i = 0; i < 5; i++) { cin>>c[i]; } cout<<mmax(c)<<endl; }