C++中什么是回调函数,注册回调函数,执行回调函数?
时间: 2024-02-01 20:10:51 浏览: 28
回调函数是指在程序执行过程中,将一个函数作为参数传递给另一个函数,并在特定的条件下被调用执行的函数。在C++中,回调函数通常用于实现事件驱动的编程模式,其中一个函数(宿主函数)在特定事件发生时调用另一个函数(回调函数)来处理事件。
注册回调函数是指将回调函数与宿主函数进行关联,使得宿主函数在特定条件下调用回调函数。在C++中,可以通过函数指针、函数对象、Lambda表达式等方式来注册回调函数。
执行回调函数是指在满足特定条件时,宿主函数调用已注册的回调函数来处理事件。执行回调函数的时机和条件由宿主函数决定。
以下是一个简单的C++示例,演示了回调函数的注册和执行过程:
```cpp
#include <iostream>
// 定义回调函数类型
typedef void (*CallbackFunc)(int);
// 定义宿主函数
void hostFunction(int value, CallbackFunc callback) {
// 宿主函数的逻辑处理
if (value > 0) {
// 满足条件时调用回调函数
callback(value);
}
}
// 定义回调函数
void callbackFunction(int value) {
std::cout << "Callback function is called with value: " << value << std::endl;
}
int main() {
// 注册回调函数
hostFunction(10, callbackFunction);
return 0;
}
```
在上述示例中,`hostFunction`是宿主函数,它接受一个整数参数和一个回调函数参数。在`hostFunction`中,如果传入的整数参数大于0,则调用已注册的回调函数。`callbackFunction`是回调函数,它接受一个整数参数,并在被调用时输出该参数的值。
运行上述示例,输出结果为:
```
Callback function is called with value: 10
```