c++回调
c++回调包含类函数回调和非类函数回调。
类函数回调,函数指针指向函数名称,需要带类作用域,调用时需要用到类指针。
如qt里面定义一个返回值为qbytearray的函数指针,
typedef QByteArray (myThead::*Func_Construct)(QByteArray line);//定义函数指针
QByteArray deviceStatus_construct(QByteArray);
QByteArray realData_construct(QByteArray line);
QByteArray dayRun_construct(QByteArray);
QByteArray monthCheck_construct(QByteArray line);
QByteArray flag_construct(QByteArray line);
QByteArray palarm_construct(QByteArray line);
QByteArray deviceDefine_construct(QByteArray line);
QByteArray staff_construct(QByteArray line);
QByteArray deviceStatus_construct_str(QString line);
case e_deviceStatus:
pFunc = &myThead::deviceStatus_construct;
break;
case e_realData:
pFunc = &myThead::realData_construct;
break;
case e_dayRun:
pFunc = &myThead::dayRun_construct;
break;
case e_monthCheck:
pFunc = &myThead::monthCheck_construct;
break;
case e_flag:
pFunc = &myThead::flag_construct;
break;
case e_palarm:
pFunc = &myThead::palarm_construct;
break;
case e_deviceDefine:
pFunc = &myThead::deviceDefine_construct;
break;
case e_staff:
pFunc = &myThead::staff_construct;
回调:
QByteArray btLine = (this->*pFunc)(strLine.toUtf8());
非类指针则简单得多:
typedef void (*Func)(int ,int )
void func1(int numA,int numB){
printf(numA+numB);
} void func2(int numA,int numB){
printf(numA - numB);
} int main(){
int numA = ;
int numB=;
Func pFunc = &func1;
pFunc (numA ,numB);
pFunc = &func2;
pFunc(numA,numB);
return0;
}
c++回调的更多相关文章
- JAVA回调机制(CallBack)详解
序言 最近学习java,接触到了回调机制(CallBack).初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义.当然了,我在理解了回 ...
- 小兔JS教程(三)-- 彻底攻略JS回调函数
这一讲来谈谈回调函数. 其实一句话就能概括这个东西: 回调函数就是把一个函数当做参数,传入另一个函数中.传进去的目的仅仅是为了在某个时刻去执行它. 如果不执行,那么你传一个函数进去干嘛呢? 就比如说对 ...
- iOS 键盘添加完成按钮,delegate和block回调
这个是一个比较初级一点的文章,新人可以看看.当然实现这个需求的时候自己也有一点收获,记下来吧. 前两天产品要求在工程的所有数字键盘弹出时,上面带一个小帽子,上面安装一个“完成”按钮,这个完成按钮也没有 ...
- JAVA回调机制解析
一.回调机制概述 回调机制在JAVA代码中一直遇到,但之前不懂其原理,几乎都是绕着走.俗话说做不愿意做的事情叫做突破,故诞生了该文章,算是新年的新气象,新突破! 回调机制是什么?其实回 ...
- 嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比
C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(i ...
- 嵌入式&iOS:回调函数(C)与block(OC)回调对比
学了OC的block,再写C的回调函数有点别扭,对比下区别,回忆记录下. C的回调函数: callBack.h 1).定义一个回调函数的参数数量.类型. typedef void (*CallBack ...
- Java回调方法详解
回调在维基百科中定义为: 在计算机程序设计中,回调函数,是指通过函数参数传递到其他代码的,某一块可执行代码的引用. 其目的是允许底层代码调用在高层定义的子程序. 举个例子可能更明白一些:以Androi ...
- Android开发之自定义组件和接口回调
说到自定义控件不得不提的就是接口回调,在Android开发中接口回调用的还是蛮多的.在这篇博客开始的时候呢,我想聊一下iOS的自定义控件.在iOS中自定义控件的思路是继承自UIView, 在UIVie ...
- jQuery2.x源码解析(回调篇)
jQuery2.x源码解析(构建篇) jQuery2.x源码解析(设计篇) jQuery2.x源码解析(回调篇) jQuery2.x源码解析(缓存篇) 通过艾伦的博客,我们能看出,jQuery的pro ...
- 给jquery-validation插件添加控件的验证回调方法
jquery-validation.js在前端验证中使用起来非常方便,提供的功能基本上能满足大部分验证需求,例如:1.内置了很多常用的验证方法:2.可以自定义错误显示信息:3.可以自定义错误显示位置: ...
随机推荐
- Well, let's start everything from the very beginning.
帝都的霾仿佛亘古不变,不知觉2015年竟已快到尾声,而我在IBM也已呆了4个月.回顾过往多遇贵人,所获颇丰.最幸运的还是自己不忘初心,仍在不断成长.继续学习. 过去的几个月一直用WordPress,搭 ...
- 使用Spring的命名空间p装配属性-摘自《Spring实战(第3版)》
使用<property>元素为Bean的属性装配值和引用并不太复杂.尽管如此,Spring的命名空间p提供了另一种Bean属性的装配方式,该方式不需要配置如此多的尖括号. 命名空间p的sc ...
- ADF_Advanced ADF系列1_Fusion应用的客制和个性化(Part1)
2015-02-17 Created By BaoXinjian
- Report_客制化Excel报表中的XLS标记(案例)
2014-06-06 Created By BaoXinjian
- CF109 C. Lucky Tree 并查集
Petya loves lucky numbers. We all know that lucky numbers are the positive integers whose decimal re ...
- NeHe OpenGL教程 第三十九课:物理模拟
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- CLR如何调用虚方法、属性和事件
方法代表在类型或类型的实例上执行某些操作的代码.在类型上执行操作,称为静态方法:在类型的实例上执行操作,称为非静态方法.任何方法都有一个名称.一个签名和一个返回值(可以是void). CLR允许一个类 ...
- centos6.5安装配置fastdfs+nginx实现分布式图片服务器
一.准备 yum groupinstall -y "Development Tools"yum install -y wget libevent-devel pcre-devel ...
- Memcache 问题集锦
Memcached 集群架构方面的问题 这里收集了经常被问到的关于memcached的问题 memcached是怎么工作的? memcached最大的优势是什么? memcached和MySQL的qu ...
- Android学习笔记02
1.线性布局LinearLayout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...