Qt中最基础的设计模式:私有实现(Private Implementation)

开源是QtFramework的重要优势。代码开源可以让我们快速定位疑难杂症,更可以学习到优秀技术和思想,提高自身技术素养。但是,许多初学者在初次阅读Qt代码时,都会被里面大量存在的的Q_D、Q_Q宏弄得晕头转向。例如:

Q_D(QObject);
d->blockSig = true; // d是从哪出来的? 怎么没见到过声明
//...

因此,为了更好地阅读和理解Qt代码,我们必须了解这两个宏的含义。
宏Q_D和Q_Q是Qt pimpl设计模式的体现。pimpl模式是一种常见的设计模式,用于隐藏一个类的实现细节,从而减少编译依赖和提高封装性,达到提高编译速度和增加二进制接口的稳定性的目的。
宏Q_D和Q_Q中的"D"和"Q"分别是"Data"和"Qt"的缩写:

  • “D"代表"Data”,在这里指的是类的私有数据部分,即私有实现(Private Implementation)。
  • "Q"代表"QObject"或者更泛化地指的是类的公共部分(Public
    Interface)。或者,就是指代Qt本身,即使用者认知里的Qt(提供的对外接口)。

所以,Q_D宏用于获取(Query)指向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值