模板具体化问题
各位,小弟写了个简单的程序,请指点一下究竟错在哪里了 功能是返回最大的数值,或则字符串地址#include <iostream>
using namespace std;
template <class T>
T maxn(T arr[], int n);
template<>char * maxn(char *arr[], int n); //模板具体化 对吗?
int main()
{
int array[6]={9,7,6,1,5,4};
double arrDou[4]={9.15,6.35,7.25,6.23};
char *arrayc[]=
{
"I'm ok.",
"I feel good.",
"I feel so good.",
};
cout << maxn(array, 6) << endl;
cout << maxn(arrDou, 4) << endl;
cout << maxn(arrayc, 3) << endl;
return 0;
}
template <class T>
T maxn(T arr[], int n)
{
T max=*arr;
for(int i=0; i<n; i++)
{
if(*(arr+i) > max)
max=*(arr+i);
}
return max;
}
template<>char * maxn(char *arr[], int n)
{
char *max=*arr;
for(int i=0; i<n; i++)
{
if(strlen(reinterpret_cast(*arr+i)) > strlen(*max)) //这里比较字符串长短该怎么比较?
max=*(arr+i);
}
return max;
}