首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于函数定制解决方法

2012-02-08 
关于函数定制constchar*min(constchar*str1,constchar*str2,constchar*str3){constchar*tempintresult1s

关于函数定制
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。

热点排行