function 中的回调函数
时间: 2024-03-19 18:36:20 浏览: 18
在C++中,可以使用`std::function`作为回调函数。`std::function`是一个通用的函数封装,可以用于存储、复制和调用任何可调用对象(函数、lambda表达式、函数对象等)。下面是一个使用`std::function`实现回调函数的例子:
```c++
#include <iostream>
#include <functional>
void print_num(int num) {
std::cout << "num: " << num << std::endl;
}
void print_twice(int num, std::function<void(int)> callback) {
std::cout << "num * 2: " << num * 2 << std::endl;
callback(num * 2);
}
int main() {
print_twice(5, print_num); // 输出:num * 2: 10 num: 10
return 0;
}
```
在上面的例子中,`print_num`函数作为回调函数传递给了`print_twice`函数。`print_twice`函数会先输出`num * 2`的值,然后调用回调函数并将`num * 2`作为参数传递给它。在`main`函数中,我们调用`print_twice`函数,并将`print_num`函数作为回调函数传递给它。`print_twice`函数会先输出`num * 2`的值,然后调用回调函数并将`num * 2`作为参数传递给它,最终输出`num`的值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)