大家好,我是IT文艺男,来自一线大厂的一线程序员
上节视频给大家讲解了Qt信号槽的Qt宏展开推导;今天接着深入分析,进入Qt信号槽源码剖析系列的第三节视频。
#define signals public
#define slots
#define Q_OBJECT public: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); QT_TR_FUNCTIONS private: Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **);
#define emit
#define SIGNAL(a) "2"#a
#define SLOT(a) "1"#a
在Visual Studio中按如下操作查看预处理之后的代码::
Counter类声明对比
Counter类定义对比
main函数对比
因此,上述分析一目了然,理论推导与实践结果是高度一致的;
今天就讲解到这里,更详细的原理分析与讲解,请关注微信公众号(itwenyinan),观看对应的的视频版讲解;谢谢
原文:https://www.cnblogs.com/appsucc/p/14675252.html