C++回调函数-实操(二)
2023-12-26 18:45:14
回调通常通过函数指针、函数对象(仿函数)、Lambda 表达式或者 std::function
来实现。
1、函数指针实现回调
这一方法实现回调比较好记,就记住把函数当作参数传给方法,在方法中调用方法。
#include <iostream>
// 回调函数类型
typedef void (*CallbackFunction)(int);
// 使用回调函数的函数
void performCallback(int value, CallbackFunction callback) {
// 执行某些操作
std::cout << "Performing operation with value: " << value << std::endl;
// 调用回调函数
callback(value * 2);
}
// 回调函数
void callbackFunction(int value) {
std::cout << "Callback executed with value: " << value << std::endl;
}
int main() {
performCallback(5, callbackFunction);
return 0;
}
2、函数对象(仿函数)实现回调
#include <iostream>
// 仿函数类
class CallbackClass {
public:
void operator()(int value) const {
std::cout << "Callback executed with value: " << value << std::endl;
}
};
// 使用回调函数对象的函数
void performCallback(int value, const CallbackClass& callback) {
// 执行某些操作
std::cout << "Performing operation with value: " << value << std::endl;
// 调用回调函数对象
callback(value * 2);
}
int main() {
CallbackClass callbackObj;
performCallback(5, callbackObj);
return 0;
}
3、Lambda 表达式实现回调
#include <iostream>
// 使用回调Lambda的函数
void performCallback(int value, const std::function<void(int)>& callback) {
// 执行某些操作
std::cout << "Performing operation with value: " << value << std::endl;
// 调用回调Lambda
callback(value * 2);
}
int main() {
// 定义并传递Lambda作为回调
performCallback(5, [](int value) {
std::cout << "Callback executed with value: " << value << std::endl;
});
return 0;
}
推荐阅读
文章来源:https://blog.csdn.net/cangqiongxiaoye/article/details/135228206
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!