对不起,提出这样一个问题,因为我确信它之前已经得到了答案,但我正在努力寻找答案,而不是为了寻找答案。 ..反正..将一个非静态方法指针作为参数传递给另一个方法
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); ????
}
因此,基本上,所有我想要做的就是通过所谓的处理程序作为一个函数指针读法,在非静态成员方法,以便执行回调的情况下,处理程序被调用。
我试过各种各样的方法来使这项工作,并不想让静态方法(因为我不会进入)。我觉得我非常接近,但最后还是有点失败!任何帮助,将不胜感激。
查看常见问题简介,他们有一个伟大的专门讨论这个部分:http://www.parashift.com/c++-faq/pointers-to-members.html – Constantin 2013-05-09 01:51:33