• 4566阅读
  • 3回复

MFC与Qt的事件处理方式探讨 [复制链接]

上一主题 下一主题
离线oceanljp
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-18
工作要求,最近在看MFC。看到了MFC的消息映射机制。

在孙鑫的《VC++深入理解》看到,在MFC中,是使用消息映射的方式来处理事件的。而不是使用诸如QT中重载paintEvent之类函数的方式。
因为采用虚函数重载的的方式,会使得派生类中背负很大的虚函数表,浪费内存。


我看了下QWidget的源码,其中确实包括了很多的xxxEvent类的虚函数,这样Qt岂不会很浪费内存?

离线ffii4455

只看该作者 1楼 发表于: 2013-01-19
多花的内存换来了更直观更简单的结构。现代计算机不缺这点内存
离线彩阳

只看该作者 2楼 发表于: 2013-02-28
尽量减少虚函数的重载也是一种节约内存的行为不是吗?Qt做得很好。而且MFC本质上还是win32得API,而win32API是基于C语言写的,扩展性差。
上海Qt开发联盟,热忱地欢迎你的加入!
离线pxiao_xiao

只看该作者 3楼 发表于: 2013-03-01
MFC也是通过集成和重写虚函数来实现的 任何能处理消息的类型皆是派生于CCmdTarget  
Qt 的Q_Object宏扩展看 就能看出 两者的不同
快速回复
限100 字节
 
上一个 下一个