在以下编程中,该怎样把函数作为另一个函数的参数?该怎么操作?

void visit(int i,SqList l1) /
{
cout<<l1.elem[i]<<" "; 
}

status TraverseSqList(SqList l1,status (*visit )(int i,SqList l1)) 
{
for(int i=0;i<l1.length ;i++)
visit(i,l1);
cout<<endl;
return OK;
}
//status是我自己定义的类型,可以无视

如上所述的程序,我想把visit函数作为TraverseSqList函数的参数,但是不知道怎么写程序?另外同学说需要用到函数指针,我也不太懂,求解答?万分感谢

拉莫斯之舞
浏览 155回答 2
2回答

临摹微笑

visit返回是void,不是你的TraverseS里的status,把这里改了就是把函数当参数了从你这几行代码来看,似乎没有必要传个函数进去吧;指针函数在你这几行代码里也是没有必要的

胡说叔叔

先把TraverseSqList这个函数里的visit换个名字(比如f),要不然会冲突status TraverseSqList(SqList l1,status (*f)(int i,SqList l1)){for(int i=0;i<l1.length ;i++)f(i,l1);cout<<endl;return OK;}调用时直接写TraverseSqList(参数1,visit);就行&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP