#include <iostream>
#include <cstring>
using namespace std;
template<typename T>
T maxn(T num[] , int n) ;
template<> char * maxn(char *num[] ,int n) ; //显式具体化
int main()
{
//测试
int num1[6] ={1,2,3,4,5,6} ;
double num2[4]={8.8,7.7,6.6,5.5} ;
char *num3[3]={"father","dad","mother"};
cout<<"整形数组中的最大值是:"<<maxn(num1,6)<<endl ;
cout<<"浮点型形数组中的最大值是:"<<maxn(num2,4)<<endl ;
cout<<"字符串数组中最长的是:"<<maxn(num3,3)<<endl ;
return 0 ;
}
template<typename T>
T maxn(T num[] , int n)
{
T maxt =num[0] ;
for(int i=1 ;i<n;i++)
{
if(num[i]>maxt)
maxt=num[i] ;
}
return maxt ;
}
template<> char * maxn(char *num[] ,int n) //显式具体化
{
char *p = num[0] ;
for(int i=1;i<n ;i++)
{
if(strlen(num[i])>strlen(p))
{
p=num[i] ;
}
}
return p ;
}