日期:2011-03-22 13:55:00 来源:本站整理
<b>拜托、信号和消息反馈的模板实现技术</b>[VC/C++编程]
本文“<b>拜托、信号和消息反馈的模板实现技术</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
憋了很长一段时间的设法,在这里说说,但愿听听诸位高手的看法.
我写过不少C++程序(当然比起高手还是差远了),写过库也写过客户程序.普通库城市供应一些好用的类供客户程序利用,不少库还可以让客户程序呼应库内的某些事件.比方MFC/ATL/VCL供应消息呼应,很多ActiveX供应自定义消息呼应,乃至是系统底层的中止调用都可以列入这个范围.但是,恰是以上这些“反向”的调用让我认为很懊恼.
1 担当+多态乍一看是理所当然的挑选,库中的类把呼应处理函数设置为虚函数,客户程序可以担当这个类并且重载呼应函数.以某个Socket类为例,可以供应一个OnRecv函数用来呼应网络数据包到达的处理.客户程序只需求重载OnRecv并举行自己的处理便可以了.
struct Socket { // base class
virtual void OnRecv();
};
stuct MySocket { // your event-handle class
virtual void OnRecv() { /* do sth here ... */ }
}
疑问:很多时刻这样做实在很烦,分外是做小程序的时刻,大概需求快速做原型的时刻,一眼望去小小的程序一上来就担当了一大堆东西,颇为不爽.只是想着能费事一点,但愿能像那些脚本语言一样快速绑定消息呼应,而不是以担当开始工作——我已经惊骇看到长长的类担当树了,很多时刻根本不必要担当整个类;又大概某些类只供应一个接口而不是具体的类又大概需求多重担当,处理都有一定麻烦;最麻烦的莫过于有时刻需求改变呼应处理,莫非担当好几个下来么——这么多虚表也是浪费啊.
wangtianxing垂老点评:为了利用Socket就必须担当Socket,这可以说是Socket的计划的问题.假如需求实现近似的功效的话,可以写成以下,固然和担当 Socket 没有多少本质的差别,不过确切把消息处理类和Socket的实现扯开了.:
以上是“<b>拜托、信号和消息反馈的模板实现技术</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论