很抱歉问这样一个问题,因为我确定它以前已经回答过了,但我正在努力寻找答案,这不是为了寻找......无论如何..
class foo
{
void read(void (*func)(obj&))
{
// many things happen to obj...
(*func)(obj); // Calls the function pointer to the handler.
}
};
class bar : public foo
{
void handler(obj&)
{
//
}
};
void main()
{
foo f;
typedef void (foo::*funcptr)(obj&);
funcptr ptr = &foo::handler;
f.read(ptr); ????
}
所以基本上,我要做的就是将名为 handler 的非静态成员方法作为函数指针传递给 read 方法,以便在执行回调时调用处理程序。
我已经尝试了各种方法来完成这项工作,并且不想制作静态方法(出于我不会讨论的原因)。我想我已经很接近了,但最后有点摔倒了!任何帮助,将不胜感激。