C++回调函数
2014-09-22 23:31
295 查看
1. 何为回调(callback)
实现回调函数的时候,就是用一个函数指针保存你待回调的函数的地址。然后满足一定的条件的时候,使用这个函数指针来调用你预设定的函数。
回调函数肯定是要完成一个任务,问题是,该任务并不是马上就要完成,并且,大多数时候,我们并不能确定要做该任务的时间段。只有满足某个条件的时候,回调函数才会被触发。
如果你知道“中断”这个概念,那么“回调”的概念就很好理解了。
2.typedef函数指针
typedef 返回类型 (*新类型)(参数表)
typedef char (*PTRFUN)(int);
PTRFUN pFun;
char glFun(int a)
{
return;
}
void main()
{
pFun = glFun;
(*pFun)(2);
}
typedef的功能是定义新的类型。
第一句就是定义了一种PTRFUN的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回char类型。后面就可以像使用int,char一样使用PTRFUN了。
第二行的代码便使用这个新类型定义了变量pFun。
3. 回调函数c++实现
Callback最本质的特征包括两点:注册和触发
必须是静态成员函数或者全局函数来实现回调函数
大概原因是普通的C++成员函数都隐含了一个传递函数作为参数,即this指针,
C++通过传递this指针给成员函数从而实现函数可以访问C++的数据成员。
由于this指针的原因,使得一个普通成员函数作为回调函数时就会因为隐含的this指针问题使得函数参数个数不匹配,从而导致回调函数编译失败。
实现回调函数的时候,就是用一个函数指针保存你待回调的函数的地址。然后满足一定的条件的时候,使用这个函数指针来调用你预设定的函数。
回调函数肯定是要完成一个任务,问题是,该任务并不是马上就要完成,并且,大多数时候,我们并不能确定要做该任务的时间段。只有满足某个条件的时候,回调函数才会被触发。
如果你知道“中断”这个概念,那么“回调”的概念就很好理解了。
2.typedef函数指针
typedef 返回类型 (*新类型)(参数表)
typedef char (*PTRFUN)(int);
PTRFUN pFun;
char glFun(int a)
{
return;
}
void main()
{
pFun = glFun;
(*pFun)(2);
}
typedef的功能是定义新的类型。
第一句就是定义了一种PTRFUN的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回char类型。后面就可以像使用int,char一样使用PTRFUN了。
第二行的代码便使用这个新类型定义了变量pFun。
3. 回调函数c++实现
Callback最本质的特征包括两点:注册和触发
C++中如何将类成员函数作为回调函数使用,必须是静态方法吗?
必须是静态成员函数或者全局函数来实现回调函数大概原因是普通的C++成员函数都隐含了一个传递函数作为参数,即this指针,
C++通过传递this指针给成员函数从而实现函数可以访问C++的数据成员。
由于this指针的原因,使得一个普通成员函数作为回调函数时就会因为隐含的this指针问题使得函数参数个数不匹配,从而导致回调函数编译失败。
相关文章推荐
- C++回调函数(callback)与仿函数(functor)的异同
- C++回调函数的处理
- C++回调函数(callback)与仿函数(functor)的异同
- C++回调函数出错简单介绍
- C/C++中回调函数初探
- C/C++中回调函数初探
- C++回调函数(callback)与仿函数(functor)的异同
- C/C++中回调函数初探
- 回调函数的C++ 封装
- C++回调函数示例
- [转] C/C++中回调函数初探
- 举例说明C++回调函数(callback)的使用 - 转帖
- C++回调函数(callback)与仿函数(functor)的异同
- C/C++中回调函数初探
- [转]C++回调函数的处理
- C++回调函数 用法
- C/C++中回调函数初探
- C++回调函数(callback)与仿函数(functor)的异同
- c++回调函数的使用
- C/C++中回调函数初探