C++ 中callback用法

在C++中,callback函数通常被称为回调函数。回调函数是指一个函数被传递到另一个函数中,以便在特定事件发生时被调用。

以下是在C++中使用回调函数的示例:

#include <iostream>

using namespace std;

// 回调函数
void callbackFunc(int a, int b)
{
    cout << "a + b = " << a + b << endl;
}

// 接受回调函数的函数
void doSomething(int a, int b, void (*callback)(int, int))
{
    // 执行某些操作

    // 调用回调函数
    callback(a, b);
}

int main()
{
    // 调用doSomething函数,并传递回调函数
    doSomething(10, 20, callbackFunc);

    return 0;
}

在上面的示例中,定义了一个名为callbackFunc的回调函数,该函数接受两个整数参数,并打印它们的和。还定义了一个名为doSomething的函数,该函数接受三个参数:两个整数和一个回调函数。在doSomething函数中,执行某些操作后调用传递的回调函数。在main函数中,调用doSomething函数,并传递回调函数callbackFunc。

当doSomething函数调用传递的回调函数时,它会将其传递的两个整数参数作为回调函数的参数传递。在本例中,回调函数将计算传递的两个整数的和,并打印结果。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Callback(回调函数)是一种常见的编程技术,它允许一个函数作为参数传递给另一个函数,以便在某个事件发生时被调用。在 C++ ,回调函数可以使用函数指针或函数对象实现。 使用函数指针实现回调函数的示例代码如下: ```cpp #include <iostream> using namespace std; void callback(int val) { cout << "Callback function called with value: " << val << endl; } void doSomething(int val, void (*func)(int)) { cout << "Doing something with value: " << val << endl; func(val); } int main() { doSomething(42, callback); return 0; } ``` 上述代码,`doSomething` 函数接收一个整数和一个指向回调函数的函数指针。在函数内部,该整数被处理并传递给回调函数。在主函数,我们调用 `doSomething` 函数并传递一个回调函数 `callback`。 另一种实现回调函数的方法是使用函数对象。这种方法比使用函数指针更加灵活,因为函数对象可以存储状态并支持函数重载。下面是使用函数对象实现回调函数的示例代码: ```cpp #include <iostream> using namespace std; class Callback { public: void operator()(int val) const { cout << "Callback functor called with value: " << val << endl; } }; void doSomething(int val, const Callback& func) { cout << "Doing something with value: " << val << endl; func(val); } int main() { Callback callback; doSomething(42, callback); return 0; } ``` 在上述代码,我们定义了一个 `Callback` 类,它重载了函数调用运算符。`doSomething` 函数接收一个整数和一个 `Callback` 对象作为参数。在函数内部,整数被处理并传递给回调函数对象。在主函数,我们创建一个 `Callback` 对象并将其传递给 `doSomething` 函数。 无论是使用函数指针还是函数对象,回调函数都是一种非常有用的技术,可以让程序在特定事件发生时执行特定的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值