本文主要是介绍【Qt】通过QtCreator源码学习Qt(十二):Q_D和Q_Q指针(简称“d指针”)详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、Q_D和Q_Q指针(简称“d指针”)简介
参考博客:
https://www.devbean.net/2016/11/qt-creator-source-study-07/
https://blog.csdn.net/rabinsong/article/details/9474859
官网说明(英文):
https://wiki.qt.io/D-Pointer
Qt中大量使用Q_D和Q_Q,目的是为了实现二进制兼容,
关于二进制兼容在官方文档中有生动的说明,中文翻译可参考这篇博客Qt Creator 源码学习 07:D 指针
2、Q_D和Q_Q宏源码
在class中配合使用 Q_DECLARE_PRIVATE 和 Q_D ,方便获取d指针,d指针指向Class##Private;
在Class##Private配合使用 Q_DECLARE_PUBLIC 和 Q_Q ,方便获取q指针,q指针指向原class本身;
Q_DECLARE_PRIVATE 和 Q_DECLARE_PUBLIC 在作用是定义d_func和q_func这两个函数是用来在Class和Class##Private中获取彼此的指针。
Q_D 和 Q_Q 宏是用过上面定义的d_func和q_func函数来获取d、q指针
templ
这篇关于【Qt】通过QtCreator源码学习Qt(十二):Q_D和Q_Q指针(简称“d指针”)详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!