书接上文,本章讲述connection结构,这部分是信号和槽能发挥作用的核心部分,先来看两个结构体:
struct Connection
{
QObject *sender;//信号发起者
QObject *receiver;//信号接收者
union {
StaticMetaCallFunction callFunction;//接受者的static_meatcall函数地址
QtPrivate::QSlotObjectBase *slotObj;
};
Connection *nextConnectionList;//以下三个域是用于连接
Connection *next;
Connection **prev;
...//省略
};
// ConnectionList is a singly-linked list
struct ConnectionList {
ConnectionList() : first(0), last(0) {}
Connection *first;
Connection *last;
};
用一张图来表示: