相信玩过.net的人都会对.net的事件与委托机制有着深刻的印象。因为.net的事件委托机制为对象通信提供了非常的便利。相比之下,Qt的信号与槽机制,JAVA的事件监听机制则要若很多,JAVA编码麻烦,Qt逻辑繁琐.
既然.net的事件委托机制是那么完美,玩c++的我们自然就想:能不能在c++里面也实现这样一套机制呢.其实是可以的
关于如何用c++实现事件委托机制,网上有很多说法,我在茫茫网海中游历了一圈,可惜所遇到的"事件与委托的小船"长的实在太丑,不堪入目;于是我就想打造一艘漂亮的小船。
几经努力,终于在今天把小船造好了,下面是艳照,先睹为快:
该小船的使用方法和.Net的没有区别,即用Delegate定义一个委托类型,在用该委托定义一个委托实例。直接调用委托实例可触发事件,调用委托实例的+=操作符可向委托注册事件处理器
看完之后是不是觉得这艘小船超级可爱呢.
如果你很喜欢它,那么你可以在这里获得全部的源码。
如果你有什么疑问,欢迎你加入C++技术交流群: 456666718