关于函数定制
const char* min(const char * str1,const char * str2,const char * str3)
{
const char *temp;
int result1=strcmp(str1,str2);
int result2=strcmp(str1,str3);
int result3=strcmp(str2,str1);
int result4=strcmp(str2,str3);
if(result1 <0&&result2 <0)
temp=str1;
else if(result3 <0&&result4 <0)
temp=str2;
else temp= str3;
return temp;
}
template <class T>
T min(T i,T j,T k)
{
if(i <=j&&i <=k)
return i;
else if(j <=i&&j <=k)
return j;
else if(k <=i&&k <=j)
return k;
}
void main()
{
min( "nihao ", "asdf ", "dasd ");
//此函数应该调用const char* min(const char * str1,const char * tr2,
const char * str3) 为什么不调用呢,运行是调用T min(T i,T j,T k) 所以结果不对。
}
[解决办法]
应该是调用普通函数的,你用vc6吧,这个问题应该是vc6的缘故,vc6对模板的局部特化支持的不好,.net2003下能正常运行,写模板程序不要用vc6。