您的位置:首页 > 其它

如何定义和实现一个类的成员函数为回调函数

2013-09-06 19:39 453 查看
回调函数,就是由你自己写的,你需要调用另外一个函数,而这个函数的其中一个参数,就是你的这个回调函数名。这样,系统在必要的时候,就会调用你写的回调函数,这样你就可以在回调函数里完成你要做的事。

  B.如何定义和实现一个类的成员函数为回调函数

  要定义和实现一个类的成员函数为回调函数需要做三件事:

  a.声明;

  b.定义;

  c.设置触发条件,就是在你的函数中把你的回调函数名作为一个参数,以便系统调用

  如:

  声明回调函数类型

  typedef void (*FunPtr)(void);

  定义回调函数

  class A

  {

  public:

  static void callBackFun(void) //回调函数,必须声明为static

  {

  ……

  }

  };

  设置触发条件

  void Funtype(FunPtr p)

  {

  p();

  }

  void main(void)

  {

  Funtype(A::callBackFun);

  }

  C. 回调函数与API函数

  回调和API非常接近,他们的共性都是跨层调用的函数。但区别是API是低层提供给高层的调用,一般这个函数对高层都是已知的;而回调正好相反,他是高层提供给底层的调用,对于低层他是未知的,必须由高层进行安装,这个安装函数其实就是一个低层提供的API,安装后低层不知道这个回调的名字,但它通过一个函数指针来保存这个回调函数,在需要调用时,只需引用这个函数指针和相关的参数指针。

  其实:回调就是该函数写在高层,低层通过一个函数指针保存这个函数,在某个事件的触发下,低层通过该函数指针调用高层那个函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: