我有以下代码:传递函数指针作为参数
#include<iostream>
using namespace std;
typedef void (*HandlerFunc)(int, int);
HandlerFunc mr;
HandlerFunc mm()
{
return mr;
}
void sample(int a, int b, HandlerFunc func)
{
}
void main()
{
sample(1, 2, mm);
}
在这里,我想HandlerFunc
类型的函数传递给另一个函数,但我得到一个错误:
Error :*: cannot convert parameter 3 from
'void (__cdecl *(void))(int,int)'
to'void (__cdecl *)(int,int)'
如果我输入为sample(1, 2, (HandlerFunc)mm);
一切正常。
任何人都可以告诉解决错误问题的方法是什么?
你想让'mm()'返回函数指针,还是想将'mm'定义为HandlerFunc类型? –