问题及代码
/*
*Copyright(c)2014,烟台大学计算学院
*All rights reserved.
*文件名称:test.cpp
*作者:陈银丽
*完成日期:2015年7月4日
*版本号:v1.0
*
*问题描述: 某学校抽查同学的身体情况,以下是检测到的这些同学的体重和身高,分别输出体重和身高的最大值
*输入描述:
存在错误的程序行列
T DistancePoint<T>::Maxvalue(T arr[], int n)
{
int i;
int maxV = arr[0];
for(i=1; i<n; i++)
if(maxV<arr[i])
maxV= arr[i];
return maxV;
}
*程序输出:
*/
#include <stdio.h>
#include <iostream>
using namespace std;
template <class T>
class DistancePoint
{
public:
static T Maxvalue(T arr[], int n);
};
int main()
{
const int ARRSIZE=10;
int iArr[ARRSIZE];
double dArr[ARRSIZE];
int i;
for(i=0; i<ARRSIZE; i++)
cin>>iArr[i];
cout<<DistancePoint<int>::Maxvalue(iArr,ARRSIZE)<<endl;
for(i=0; i<ARRSIZE; i++)
cin>>dArr[i];
cout<<DistancePoint<double>::Maxvalue(dArr,ARRSIZE)<<endl;
return 0;
}
/*****修改的起始行******/
template <class T>
T DistancePoint<T>::Maxvalue(T arr[], int n)
{
int i;
double maxV = arr[0];
for(i=1; i<n; i++)
if(maxV<arr[i])
maxV= arr[i];
return maxV;
}
/*****修改的终止行*****/
运行结果:
知识点总结:有关类模板。对于功能相同而数据类型不同的类,可以定义一个可对任何类型变量进行操作的类模板。
需要注意的是,在声明类模板时要增加一行 template <class 类型参数名>
知识点总结:要看清题目要求,要提交哪部分就提交哪部分