C++的lamada+回调函数
时间: 2023-07-12 14:51:13 浏览: 111
C++ 回调函数
5星 · 资源好评率100%
C++中的lambda表达式可以用于回调函数,通过lambda表达式实现回调函数可以简化代码并提高可读性。
下面是一个示例代码:
```c++
#include <iostream>
#include <functional>
void foo(std::function<void(int)> callback) {
std::cout << "Before callback" << std::endl;
callback(10);
std::cout << "After callback" << std::endl;
}
int main() {
foo([](int value){
std::cout << "Callback called with value: " << value << std::endl;
});
return 0;
}
```
这个示例中,函数`foo`接受一个`std::function`类型的参数`callback`,它表示一个接受一个`int`类型参数并且无返回值的函数。在`foo`函数中,我们首先输出一些信息,然后调用`callback`函数,并将值`10`作为参数传递给它,最后再输出一些信息。
在主函数中,我们调用`foo`函数并通过lambda表达式来传递一个回调函数。lambda表达式`[](int value){}`表示一个接受一个`int`类型参数的匿名函数,它被传递给`foo`函数作为回调函数,在`foo`函数中被调用,并将值`10`作为参数传递给它。在lambda表达式中,我们输出回调函数被调用的信息和传递给它的参数值。
阅读全文