C++ 由Log日志输出理解回调函数

18 篇文章 4 订阅

  关于回调函数的概念,之前有写过(传送点),这里不再赘述。

  本文结合Log日志输出,进一步理解回调函数的执行过程。

  首先附上demo的可运行程序代码(下载传送点),运行环境为VS2015+Qt5.8.0,不一样的自行修改即可,旨在帮助初学者走通程序,理解过程,也不用在后文中粘大段的代码...


  回调的两个主体为Test类和Log类,在Log类中定义函数指针类型:

typedef void(*Callback)(LogLevel level, const char *msg);

  传递函数指针给Log类是发生在main中,main中的回调函数如下:

void logCallback(LogLevel level, const char *msg) {
	logTest::instance->showLogMsg(msg);
}

  Test类作为显示及控制层,通过信号与槽实现外界触发:

void logTest::on_button_1_clicked() {
	LOGD("Parameter = %d", count);
	count++;
}

进而使Log类达成调用条件,调用回调函数指针,将结果(即输出内容)返回给主体,而并不关心主体接下来会用自己传回去的结果做什么,主体接收到输出内容,在界面中显示,即完成了Log日志输出这一过程:

void logTest::showLogMsg(const char *msg)
{
	ui.textBrowser->append(msg);
}


效果图:


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值