C++回调函数精解:基础使用和高级技巧一网打尽
概述:C++回调函数提供了灵活的编程方式。基础使用演示了如何定义和调用简单的回调,而高级使用则展示了返回值非 `void` 的回调和Lambda表达式的灵活性。这种机制使程序更模块化、可维护。
在C++中,回调函数可以用于实现基础和高级的功能。以下是一个包含基础和高级用法的例子,演示如何定义和使用回调函数。
基础使用:
#include <iostream>
#include <functional>
// 定义回调函数类型
using BasicCallback = std::function<void(int)>;
// 基础回调函数
void basicCallbackFunction(int result) {
std::cout << "基础回调函数被调用,结果为: " << result << std::endl;
}
// 函数接受基础回调函数作为参数
void performBasicOperation(int data, BasicCallback callback) {
std::cout << "执行基础操作,数据为: " << data << std::endl;
// 调用基础回调函数
callback(data);
}
int main() {
// 使用基础回调函数作为参数调用函数
performBasicOperation(42, basicCallbackFunction);
return 0;
}
高级使用:
#include <iostream>
#include <functional>
// 定义高级回调函数类型
using AdvancedCallback = std::function<int(int)>;
// 高级回调函数
int advancedCallbackFunction(int result) {
std::cout << "高级回调函数被调用,结果为: " << result << std::endl;
return result * 2;
}
// 函数接受高级回调函数作为参数
void performAdvancedOperation(int data, AdvancedCallback callback) {
std::cout << "执行高级操作,数据为: " << data << std::endl;
// 调用高级回调函数并获取结果
int result = callback(data);
std::cout << "高级操作的结果为: " << result << std::endl;
}
int main() {
// 使用高级回调函数作为参数调用函数
performAdvancedOperation(42, advancedCallbackFunction);
// 使用Lambda表达式作为高级回调函数
performAdvancedOperation(99, [](int result) {
std::cout << "Lambda高级回调函数被调用,结果为: " << result << std::endl;
return result * 3;
});
return 0;
}
在这个例子中,基础使用演示了如何定义和使用一个简单的回调函数。而高级使用展示了如何定义返回值非 void 的回调函数,并且使用Lambda表达式作为一种更灵活的回调方式。在高级例子中,回调函数不仅被调用,还返回了一个结果,进一步扩展了回调的灵活性。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性