信号槽机制及相关原理的学习笔记

1.Qt的信号槽

信号槽是观察者模式的一种实现

信号槽与语言无关,有多种方法可以实现信号槽

信号槽完全独立于标准的C/C语言,因此QT要正确的处理好信号和槽,必须借助于Qt工具 元对象编译器 MOC(Meta Object Compiler)

(MOC工具是一个C预处理程序,能为高层次的事件处理自动生成所需要的附加代码)

2.微软的MFC消息机制

正如Qt没有使用C语言的虚函数机制一样,MFC也没有采用C语言的虚函数机制,因为消息一旦多了,虚函数开销过大。

更深层次的原因上,多态的底层实现机制只有两种,一种是按照名称查表,一种是按照位置查表

而C语言的虚函数机制采用了按位置查表,导致的问题就是在子类很少重载基类实现的时候开销也大,再加上界面编程中子类众多的情况,基本上虚函数机制效率太低,于是各家库的编写者就只好自谋生路,当然,这其实是C++语言本身的缺陷

链接:https://blog.51cto.com/quantfabric/2070398

作者:天山老妖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值