c++ 注册回调函数研究
来源:互联网 发布:深入浅出数据分析 微盘 编辑:程序博客网 时间:2024/06/18 00:25
一 何为注册回调
注册回调简单解释就是一个高层调用底层,底层再回过头来调用高层,这个过程就叫注册回调, 连接高层和底层就叫注册回调函数。高层程序C1调用底层程序C2,而在底层程序C2 又调用了高层程序C2的callback函数,那么这个callback函数对于高层程序C1来说就是回调函数。 在设计模式中这个方式叫回调模式。
二 注册回调函数的实例:
//底层程序 C2
#include<iostream>using namespace std;class CCallback{public:virtual void onCallbackFunc(int value,int type) =0;};class ClassA{public: ClassA(CCallback *pCallbackFunc){m_pCallBack = pCallbackFunc;}void showValue(){m_pCallBack->onCallbackFunc(15,0);m_pCallBack->onCallbackFunc(17,1);}private:CCallback *m_pCallBack;};
//高层程序 C1
#include<iostream>#include"ClassA.hpp"using namespace std;class ClassB : public CCallback{public:ClassB(){m_ClassA = new ClassA(this);}void onCallbackFunc(int value,int type){if(type == 0){cout<<"Typ_ZERO = "<< value<<endl;}else{cout<<"Typ_Other = "<< value<<endl;}}void TestShowData(){m_ClassA->showValue();}public:ClassA * m_ClassA;};
#include "stdafx.h"#include"ClassB.hpp"int _tmain(int argc, _TCHAR* argv[]){ClassB *m_classB =new ClassB();m_classB->TestShowData();system("pause:");return 0;}
测试结果:
上面就是一个简单的注册回调的过程。
三 : 注册回调有何作用
注册回调 可以让调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。
1 0
- c++ 注册回调函数研究
- C语言中的注册回调函数_onexit()
- LUA和C/C++交互-注册回调函数
- GLUT-注册回调函数
- 回调函数_注册
- C 回调函数
- 【c++】回调函数
- C 回调函数
- C回调函数
- [C] 回调函数
- C 回调函数
- C回调函数
- [C++]回调函数
- c/c++:回调函数
- C /C ++ 回调函数
- 注册SMS接收回调函数实例
- SEH的注册回调函数
- 注册回调函数处理SQLITE_BUSY错误
- iOS开发UI高级 懒加载
- nodejs中的模块
- HDU5865 Stone game
- 极光推送企业开发系列之自定义消息
- Android OpenCV实现图片叠加,水印
- c++ 注册回调函数研究
- 小飞鱼老师-通达OA专业二次开发培训网络直播互动课程(图文)
- kaggle实例学习-Titanic(3)
- java设计模式之六
- poj1426bfs
- spring boot 1.4 整合 mybatis druid
- LESS学习笔记(初学实用)
- CF 13C
- 魅族公布苏宁818战报:魅蓝3s斩获单品销量冠军