美文网首页
回调函数简介

回调函数简介

作者: comma01 | 来源:发表于2017-04-20 16:17 被阅读0次

C++回调函数相关

1. 首先还是由最基本的"Hello World!"程序引入

#include <iostream>

int main()
{
    std::cout << "Hello World!" << std::endl;

    return 0;
}

2. 接下来实现一个简单的函数调用输出"Hello World!"

#include <iostream>

void sayHello(string s)
{
    std::cout << s << std::endl;
}

int main()
{
    sayHello("Hello World!");

    return 0;
}

3. 接下来说明一下有关于函数类型这一概念

所谓的函数的类型,包含了两个部分(它的申明类型和调用所需的形参列表),如对我们上文中的sayHello为例,sayHello函数的类型就为"void (string)"

有了对函数类型的理解,接着我们就可以申明一个指向函数的指针,以sayHello函数为例:

void (*fp) (string); // fp为void (string)类型的指针,还未指向相应的对象
fp = sayHello;

通过调用fp完成输出"Hello World!"代码如下:

#include <iostream>

void sayHello(string s)
{
    std::cout << s << std::endl;
}

int main()
{
    //void (*fp) (string);  // 声明一个函数指针
    fp = sayHello;
    auto fps = sayHello;    // c++11新用法

    fp("Hello ");
    fps("World!");

    return 0;
}

上述代码还是补充了C++11的新特性auto,有兴趣可以自己去了解一下

4. 下面就可以很容易的理解回调函数的概念了

所谓回调函数,简单的说就是对于一个现有系统所提供的接口,用户可以自行定义一个函数作为其形参,以函数指针的形式传入,而具体在合适使用该自定义函数由系统接口内部自行决定

再形象一点地说,你去饭店预订餐桌,留下手机号,你的手机号就是所谓的回调函数,有餐桌则通过手机号与你联系,这就是调用回调函数

下面给出简单的利用回调函数"Hello World"

#include <iostream>

void sayHello(string s)
{
    std::cout << s << std::endl;
}

void callback(void (*callfunc)(string), string s)
{
    callfunc(s);
}

int main()
{
    auto fps = sayHello;      // c++11新用法

    callback(fps, "this is callback func!");

    return 0;
}

这里需要注意的的是,在sayHello函数中是有参数string s需要传入的,callback函数的第一个参数只是一个指向sayHello函数内存地址的函数指针,其并不带参数,如果callback没有第二个参数string s的话,则无法进行调用。

PS:慢慢开始养成写博客的习惯吧,不然越来越懒了233333

相关文章

  • 回调函数简介

    C++回调函数相关 1. 首先还是由最基本的"Hello World!"程序引入 2. 接下来实现一个简单的函数调...

  • JavaScript函数_08回调函数

    回调函数 回调函数(回调),当我们把某个函数作为参数传递给另一个函数的时候,这个函数就是回调函数 回调函数的基本写...

  • Promise

    回调 把一个函数A传给另一个函数B调用,那么A就是回调函数。 回调地狱 回调套回调套回调套回调套回调套回调套回调....

  • 回调函数与promise

    回调 把一个函数A传给另一个函数B调用,那么A就是回调函数 具名回调写法 匿名回调写法 多层嵌套的匿名回调(回调地...

  • 回调函数与promise

    回调 把一个函数A传给另一个函数B调用,那么A就是回调函数 具名回调写法 匿名回调写法 多层嵌套的匿名回调(回调地...

  • javascript回调函数

    javascript回调函数很玄幻。 jquery 中大量使用了回调函数。直到现在才看懂 普通回调函数 匿名回调函...

  • 异步的实现

    异步的三种实现方式: 回调函数事件Promise 回调函数 回调函数不一定是异步 但是异步一定是回调函数。 事件 ...

  • JavaScript系列之回调函数callback

    JavaScript系列之回调函数callback JavaScript回调函数的使用是很常见的,引用官方回调函数...

  • mqtt python包回调分析

    mqtt的python包,回调函数比较复杂,每次在连接之前,需要先实现回调函数,回调函数的传入参数固定 将回调函数...

  • Android使用suspendCancellableCorou

    普通的回调函数: 回调方法,模拟耗时操作 去掉回调,转换为挂起函数:

网友评论

      本文标题:回调函数简介

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