刚才的问题没写清楚 希望这个写清楚了,在请教
#include <iostream>
using namespace std;
#include <cstring>
template <class T>
T maxn(const T arr[],int ArrSize); //摸板A
template <>
char * maxn( char * const arr[] , int ArrSize); //显示具体化
int main(){
int intarray[6]={1,2,3,4,5,6};
double douarray[4]={0.1,0.2,0.3,0.4};
cout < < "max of int array is " < <maxn(intarray,6) < < "\n ";
cout < < "max of double array is " < <maxn(douarray,4) < < "\n ";
char * str [5]=
{
"jack marry ",
"jdskalghdlsa ",
"aksjdsa 1231 ",
"123456789255555555555555555 ",
"987654314 "
};
cout < <maxn (str,5);
return 0;
}
template <class T>
T maxn ( const T arr[],int ArrSize){
T temp=arr[0];
for(int i=0;i <ArrSize;i++)
if(temp <arr[i]) temp=arr[i];
return temp;
}
template <>
char * maxn( char * const arr[],int ArrSize){
char * temp=arr[0];
for(int i=0;i <ArrSize;i++)
if(strlen(temp) <strlen(arr[i]))
temp=arr[i];
return temp;
}
刚才的帖子 大概我没有写清楚 所以我把代码贴出来
这个代码里面 创了一个 摸板A的具体化
我就想明白为什么这个具体化
template <>
char * maxn( char * const arr[] , int ArrSize);
里面的
const为什么一定要。还有为什么不能是
const char * arr[]
[解决办法]
你自己做实验能解决它们是否等价问题。求人不如求己。