c++ 回调函数示例
#include <stdio.h>//函数指针,定义一个函数指针的原型,名称为:lpFunc,三个参数:void指针,char *,int
typedef void(*lpFunc)(void *,char *,int); //调用回调函数的宿主函数,参数callback是原型名称为lpFunc的函数指针
void GetCallBack(void *lpVoid,lpFunc callback,char* name,int age){//执行回调函数callback,其实是调用通过形参callback实际传过来的函数fCallbackcallback(lpVoid,name,age);
}class A{
public:A(){};void outName(char szAlarm[],int age){printf("My name is %s,%d years old \n",szAlarm,age);}//定义一个类A的静态成员函数fCallbackstatic void fCallback(void *lpVoid,char szAlarm[],int age){//类A的成员函数中,使用类A定义一个对象指针p 指向传进来的指针参数lpVoid,强制类型转换为:A*A *p = (A*)(lpVoid);//A类型的对象指针 p调用 A类的成员寒素outNamep->outName(szAlarm,age);}//A类的成员函数Testvoid Test(){//在类A的成员函数Test中调用外部函数GetCallBack,将类A的静态成员函数fCallback名称传给第二个参数,实现fCallback函数的回调GetCallBack(this,fCallback,"kevin",38);}};int main(void)
{A a;a.Test();
}/*** 总结,想要使用回调函数* 1、首先要定义一个函数指针的原型,例如:typedef void(*lpFunc)(void *,char *,int); * 2、要定义一个或者已存在和这个函数指针原型相符合的函数,例如:static void fCallback(void *lpVoid,char szAlarm[],int age)* 3、要有调用回调函数的宿主函数,例如:void GetCallBack(void *lpVoid,lpFunc callback,char* name,int age)* 4、宿主函数去调用回调函数,例如:GetCallBack(this,fCallback,"kevin",38);* */
c++ 回调函数示例相关推荐
- 关于javascript中的回调函数
关于javascript中的回调函数 原文地址:http://blog.csdn.net/sicluoyi/article/details/1737969 考虑一个这样的例子: 假如某个项目的底层和高 ...
- html js 回调函数,js中回调函数的学习笔记
回调函数是什么在学习之前还真不知道js回调函数怎么使用及作用了,下面本文章把我在学习回调函数例子给各位同学介绍一下吧,有需了解的同学不防进入参考. 回调函数原理: 我现在出发,到了通知你" ...
- PHP - 回调函数概念与用法实例分析 - 学习/实践
1.应用场景 主要用于理解回调函数的概念, 对比JavaScript中的回调函数, 更加深刻理解回调函数的本质, 以及如何高效使用~~~ 2.学习/操作 1. 文档阅读 https://www.jb5 ...
- Python之路 34:并发与并行、锁(GIL、同步锁、死锁与递归锁)、信号量、线程队列、生消模型、进程(基础使用、进程通信、进程池、回调函数)、协程
内容: 同步锁 死锁.递归锁 信号量和同步对象(暂时了解即可) 队列------生产者和消费者模型 进程(基础使用.进程通信.进程池.回调函数) 协程 一.并发并行与同步异步的概念 1.1.并发和并行 ...
- c++11线程池的实现原理及回调函数的使用
关于线程池 简单来说就是有一堆已经创建好的线程(最大数目一定),初始时他们都处于空闲状态.当有新的任务进来,从线程池中取出一个空闲的线程处理任务然后当任务处理完成之后,该线程被重新放回到线程池中,供其 ...
- javascript的回调函数
回调函数概念:回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数. JS Api 里这样解释:A c ...
- java调用js匿名函数参数,js中匿名函数和回调函数
匿名函数: 通过这种方式定义的函数:(没有名字的函数) 作用:当它不被赋值给变量单独使用的时候 1.将匿名函数作为参数传递给其他函数 2.定义某个匿名函数来执行某些一次性任务 var f = func ...
- php callback,php Callback 回调函数详解
自 PHP 5.4 起可用 callable 类型指定回调类型 callback.本文档基于同样理由使用 callback 类型信息. 一些函数如 call_user_func() 或 usort() ...
- javascript回调函数(模式)原理和示例深入分析
广大网友读懂了我之前论述的javasc ...
最新文章
- 哎..前段时间的偷懒..造成今天的被动局面...要检讨深刻教训.
- 【Python植物大战僵尸军团来袭】“大家快醒一醒、一大波僵尸来了”
- java运动员最佳配对_运动员最佳配对问题 - osc_y1pyjby5的个人空间 - OSCHINA - 中文开源技术交流社区...
- php自动加载原理,php中的自动加载类机制原理
- JSON转换和序列化的区别
- 一个浏览图片新闻的App
- 海康威视-海康门禁设备对接SDK-已完成完整封装调用
- 回文串----蘑菇街2016校园招聘
- Aria2远程下载方案部署(CentOS7+Aria+AriaNG+Nginx)
- Spring学记笔记
- 自由职业接单,大平台,有保障
- 华为什么时候能升android10,华为手机什么时候升级安卓Q 华为首批适配Android10机型列表...
- ballerina 学习 三十 扩展开发(一)
- redis的持久化方式RDB和AOF的区别
- 心怀远方,顶峰相见!!!
- Java使用Jco连接sap详解
- illustrator插件-拼版功能开发-一键拼版-js脚本开发-ai插件
- 机器学习基础(七):概率图模型(HMM、MRF、CRF、话题模型、推断方法)
- freeSWITCH + WebRTC 音视频会议
- face_recognition人脸识别框架
热门文章
- 弘辽科技:拼多多商品转化率低有什么影响?多少正常?
- java软件开发 jpanel_java图像界面开发简单实例-JPanel应用 | 学步园
- 软件测试基础理论体系学习6-黑盒测试方法白盒测试方法简述
- 某软件生成文件不加密或者打不开带锁文件如何处理
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校OA办公管理平台jnpxm
- 视觉orb_slam中LM算法的分析
- 视频虚拟剪辑工具_VirtualClip
- PHP下拉如何选择比选一个,买房选好楼栋比选好楼层更重要!
- 杀毒软件的原理(转)
- c 中空格的asc码表_C语言常用转义字符表 和 ASCII码表完整版