C++ 回调函数事例
时间: 2024-06-15 13:01:39 浏览: 120
在C++中,回调函数是一种设计模式,它允许一个对象在其内部执行某个操作时,将控制权传递给另一个预先定义好的函数。这种方式非常灵活,常用于事件驱动编程、异步处理和函数对象(functors)等场景。
一个简单的回调函数示例通常涉及一个函数指针,作为参数传递给另一个函数。当主函数执行完成并需要某个操作时,会调用这个函数指针,执行预先注册的操作。这里是一个基本的示例:
```cpp
// 定义一个接受回调的函数
void processData(std::function<void()> callback) {
// 假设这是处理数据的主要代码
for (int i = 0; i < 10; ++i) {
std::cout << "Processing data: " << i << std::endl;
}
// 当完成主要任务后,调用回调函数
callback();
}
// 定义一个回调函数
void dataProcessed() {
std::cout << "Data processing finished!" << std::endl;
}
int main() {
// 注册回调函数
auto callback = dataProcessed;
// 调用processData并传递回调
processData(callback);
return 0;
}
```
在这个例子中,`processData`函数期望一个空的`void()`类型参数,这意味着任何接受空参数的函数都可以作为回调。当`main`函数结束时,`dataProcessed`函数会被调用。
相关问题:
1. C++中的函数指针是什么?
2. 除了函数指针,C++中还有哪些方式可以实现回调?
3. 什么情况下会使用延迟执行的回调?
阅读全文