用C++模板实现事件模型

C#语言中的委托模型封装了函数指针的用法,而事件模型又在委托的基础上实现了观察者模式。这些在程序开发中有着非常好的应用。C++语言本身没有为我们提供事件模型,如何在程序中实现自己的事件模型呢?本文将试着抛砖引玉……

首先,我们需要定义一个基本的事件模型,支持函数指针的注册和注销:

 

这个类还不能如我们想象的那样工作,因为它还不能触发事件。

为了触发事件,我们必须要知道函数的参数个数和类型,怎么办呢?(只有编译器能知道了)

没有关系,通常我们的事件处理模块的参数个数都是有限的几个,我们就提供0~2个参数的实现吧。

请看以下代码:

好了,如果你想实现更多参数的事件模型,不妨参考上述代码做一下变更即可。

下面我们就以PrintMessage来使用一下前面定义的事件模型:

编译执行上述代码,将输出结果:

Hello, world!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值