1. 程式人生 > >類模板——求陣列最大值

類模板——求陣列最大值

問題及程式碼:
/*。
*Copyright(c)2014,煙臺大學計算機學院
*All right reserved,
*檔名:test.cpp
*作者:liu_feng_zi_
*完成日期:2015年6月22日
*版本號:v1.0
*問題描述:類模板————求陣列最大值
*輸入描述:
*程式輸出:
*/
#include <iostream>
#include <string>
using namespace std;
template <class T>
class  Array_max         //宣告類模板
{
public:                   //以下3行為成員函式原型宣告
    void set_value( );    //對陣列元素設定值
    T  max_value( );    //找出陣列中的最大元素
private:
    T array[10];         //T型別陣列
    T max;               //max用來存放陣列中的最大值
};
template <class T>
void Array_max<T>::set_value( )
{
    int i;
    for (i=0; i<10; i++)
        cin>>array[i];
}
template <class T>
T Array_max<T>::max_value( )
{
    int i;
    max=array[0];
    for(i=0; i<10; i++)
        if(max<array[i])
            max=array[i];//此空可能需要多行才能實現要求的功能
    return max;
}
int main( )
{
    Array_max<int>   arrmax_int; //定義物件arrmax_int,該物件中陣列元素型別為整型
    arrmax_int.set_value( );      //呼叫arrmax_int的set_value函式,向陣列元素輸入數值
    cout<<arrmax_int.max_value( )<<endl;  //呼叫arrmax_int的max_value函式,找出陣列元素中的最大值
    Array_max<double>   arrmax_double; //定義物件arrmax_double,該物件中陣列元素型別為雙精度型
    arrmax_double.set_value( );      //呼叫arrmax_double的set_value函式,向陣列元素輸入數值
    cout<<arrmax_double.max_value( )<<endl;  //呼叫arrmax_double的max_value函式,找出陣列元素中的最大值
    Array_max<char>   arrmax_char; //定義物件arrmax_char,該物件中陣列元素型別為字元型
    arrmax_char.set_value( );      //呼叫arrmax_char的set_value函式,向陣列元素輸入數值
    cout<<arrmax_char.max_value( )<<endl;  //呼叫arrmax_char的max_value函式,找出陣列元素中的最大值
    Array_max<string>   arrmax_string; //定義物件arrmax_string,該物件中陣列元素型別為字串型
    arrmax_string.set_value( );      //呼叫arrmax_string的set_value函式,向陣列元素輸入數值
    cout<<arrmax_string.max_value( )<<endl;  //呼叫arrmax_string,的max_value函式,找出陣列元素中的最大值
    return 0;
}

執行結果: