臻享优惠价:最高返 500 抵扣券 → 查看活动!>>>

C++ 函数指针与回调函数的对比

函数指针和回调函数都是实现回调机制的工具。函数指针在编译时创建,不可修改,需要显式调用;而回调函数在运行时创建,可动态绑定到不同函数,由回调函数自动调用。因此,函数指针适合静态回调,而回调函数适合动态回调。

C++ 函数指针与回调函数的对比 - 我爱模板网

C++ 函数指针与回调函数的对比

函数指针和回调函数都是 C++ 中用来实现回调机制的强大工具。

函数指针

  • 是指向函数的指针变量。
  • 在编译时创建,无法在运行时更改。
  • 需要显式调用。

回调函数

  • 是一个接受函数指针作为参数的函数。
  • 在运行时创建,可以动态绑定到不同的函数。
  • 由回调函数自动调用。

实战案例

考虑一个需要在不同时间执行不同任务的应用程序。我们可以使用以下代码实现此功能:

#include <iostream>

// 定义一个打印消息的函数
void print_message(const char* message) {
  std::cout << message << std::endl;
}

// 定义一个接受函数指针参数的回调函数
void execute_callback(void (*callback)(const char*)) {
  callback("Hello world!");
}

int main() {
  // 使用函数指针调用回调函数
  execute_callback(print_message);
  
  // 动态创建并调用回调函数
  auto lambda = [](const char* message) {
    std::cout << "[Lambda] " << message << std::endl;
  };
  execute_callback(lambda);

  return 0;
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
豆包可以帮你高效完成AI问答、AI对话、提供软件相关教程以及解决生活中遇到的各种疑难杂症,还能帮助你进行AI写作、AI绘画等等,提高你的工作学习效率。
!
你也想出现在这里?立即 联系我们吧!
信息
个人中心
购物车
优惠劵
今日签到
搜索