美文网首页码农的世界程序员
通过c++示例解释回调

通过c++示例解释回调

作者: 丁俊杰_ | 来源:发表于2018-10-06 12:39 被阅读1次

回调的简易解释

简单来说回调是一种双向调用模式,例如我们是调用方A,去调用被调方B中的方法x(),处理完成后,被调方会反过来调用我们传过去的函数y(),实现我方在开发中写的y函数的功能。

回调的简易示例

#include <stdio.h>

void firstCalc(int x);
void secondCalc(int x);

int main()
{
    //我方开发视角,即为用户层,执行输入参数等动作
    CallBack callback;
    callback.changeNum(1, 2, firstCalc);
    callback.changeNum(1, 2, secondCalc);
    return 0;
}

//开发处理层,由我们开发人员来书写计算逻辑
void firstCalc(int result)
{
    int otherNum = 10;
    printf("result first值为: %d\n", result + otherNum); // 9
}

//开发处理层,由我们开发人员来书写计算逻辑
void secondCalc(int result)
{
    int otherNum = 11;
    printf("result second值为: %d\n", result - otherNum); // -12
}
 

以上的代码一般是由我方开发人员写的。

/*实际开发中,下面这个类可能是被调方写的逻辑,会被封装起来,仅提供接口函数,相当于系统底层。
我们的目的也许是由此得到底层的某些参数,例如length,或许是由底层检测某种事件,触发我们
自己写的函数,例如系统检测到点击事件,就执行我们开发者写的点击后的函数逻辑*/
#include <stdio.h>
typedef void (*NumCalc)(int ); // 定义函数指针
int changeNum(int x, int y, NumCalc fp);

class CallBack
{
   public:
      double length; 

      int changeNum(int incNum, int decNum, NumCalc fp)
      {
          fp(incNum - decNum);
      }  
};

实际开发中,上面这个类可能是被调方写的逻辑,会被封装起来,仅提供接口函数,相当于系统底层。
我们的目的也许是由此得到底层的某些参数,例如length,或许是由底层检测某种事件,触发我们自己写的函数,例如系统检测到点击事件,就执行我们开发者写的点击后的函数逻辑。这一切即可通过传递函数指针给底层,让它把我们需要的东西传给我们。

以上。

我的github传送地址:https://github.com/JunJieDing666

相关文章

  • 通过c++示例解释回调

    回调的简易解释 简单来说回调是一种双向调用模式,例如我们是调用方A,去调用被调方B中的方法x(),处理完成后,被调...

  • 通过示例简单易懂地解释c++中的回调

    回调的简易解释 简单来说回调是一种双向调用模式,例如我们是调用方A,去调用被调方B中的方法x(),处理完成后,被调...

  • Android-MVC设计模式

    MVC结构示例: controller示例: 回调接口类示例:

  • 函数指针算法库

    函数指针, 函数指针数组声明 通过参数指定回调函数,代码示例 算法库代码说明 argc:参数个数 argv:回调函...

  • OpenCV 教程 02 : 创建滑块

    示例代码 回调函数方式 非回调函数方式 运行结果

  • 回调函数

    下面是JS回调函数的简单示例代码: 回调函数并不是只有JS才有,其它很多开发语言都有,百度百科解释也很清楚,我提取...

  • 弱回调示例

  • Nodejs.1

    参考内容:Node.js REPL(交互式解释器)C/C++之回调函数注意 - 在nodejs网页中使用中文时需要...

  • Java回调

    回调示例代码 被调用方 Reponse::handle 回调接口(函数式接口) 请求方 打印结果

  • 回调函数,异步函数

    正题,谈回调函数 (Callback) 解释(引用于百度百科): 回调函数就是一个通过函数指针调用的函数。如果你把...

网友评论

    本文标题:通过c++示例解释回调

    本文链接:https://www.haomeiwen.com/subject/bychaftx.html