帮我看看下面的函数代码,有什么问题?谢谢了

rwq_ 2003-10-07 11:34:49
int comp(const int arg1,const int arg2)
{
if(arg1 == arg2)
return 0;
else if(arg1 > arg2)
return 1;
else
return -1;
}

template <typename Type, int (*Comp)(const Type&, const Type&)>
const Type& min( const Type *p, int size, Comp comp)//这行出现错误!
{
Type *min_val ;
int min_index = 0;
for(int i=1; i<size; i++)
{
if(comp(arr_num[min_index],arr_num[i])>0)
min_index = i;
}
return arr_num[i];
}
--------------------------------------
调试的时候,出现问题:
error C2061: 语法错误 : 标识符“Comp”
...全文
37 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
point_to 2003-10-07
  • 打赏
  • 举报
回复
如果想用的话,可以加一句:
typedef int (*COMP)(const int , const int);
那么就直接用 COMP comp可以了!

如:
typedef int (*COMP)(const int , const int);
...
template <typename Type,int (*Comp)(const int , const int )>
const Type& minn( const Type *p, int size,COMP fp)//这行出现错误!
...
point_to 2003-10-07
  • 打赏
  • 举报
回复
int (*Comp)(const Type&, const Type&)
表明Comp是一个函数指针,不是一个型别,所以在 Comp comp的时候就error了!
例子:
int *p;
p pp;//错了!!
darcymei 2003-10-07
  • 打赏
  • 举报
回复
看不懂 arr_num what?min_val,p有什么用
zlqian 2003-10-07
  • 打赏
  • 举报
回复
template <typename Type, int (*Comp)(const Type&, const Type&)>
摸板不能有模板参数
wxm5211 2003-10-07
  • 打赏
  • 举报
回复
模板参数中有问题!
rwq_ 2003-10-07
  • 打赏
  • 举报
回复
我这个例子是从C++ primer中取出来,自己修改一下的!真闷!我看了半天,觉得Comp怎么也不是一个类型!

根据 point_to(一 指) 的说法调试了一下,还行,不过觉得这种做法局限性又太大了!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧