#ifndef qt_no_qobject
: public qobject
#endif
;上面的**中出現了乙個紅「q_declare_private」,接下來看看這個巨集的作用。
template static inline t *qgetptrhelper(t *ptr)
#define q_declare_private(class) \
inline class##private* d_func() \
inline const class##private* d_func() const \
friend class class##private;
發現這個展開後引入了d_func()這個函式。但是「d指標」和這個巨集又有什麼關係呢?那就要說到另乙個巨集「q_d」看如下的**:
#define q_d(class) class##private * const d = d_func()
從**中可知,d_func()和d指標是緊密聯絡的。在qt原始碼中「d_func()函式」和「d指標」的使用無處不在!
在接下的過程中又發現了另一組巨集「q_declare_public、q_q」,**如下:
#define q_declare_public(class) \
inline class* q_func() \
inline const class* q_func() const \
friend class class;
#define q_q(class) class * const q = q_func()
這組巨集引入了「q_func()函式」和「q指標」,這兩個在qt**中遇見較少,留待以後研究。 無處不在的NFC
長期以來,nfc技術處於左右為難或先有雞還是先有蛋的窘境之中。在無產品支援的情況下,製造商為什麼要在手機中採用nfc,反之,當製造商在手機中採用nfc時,為什麼無產品支援?值得慶幸的是,這樣的日子已經一去不復返了,如今已有5億多部支援nfc的高階智慧型手機投入使用,此問題已得到妥善解決。nfc手機正...
無處不在的分析能力
好長時間沒寫部落格了,不是沒有時間,而是堅持的還不夠。今天遇到乙個問題,想寫出來和大家分享。昨天晚上寫到category這個頁面。主要是把類別新增到資料庫中,和從資料庫中拿出後樹狀展示。涉及的知識倒是不多,也就是判斷 迭代等。但是我從昨晚寫,知道今天中午5點才搞定。中間花費了差不多4個小時左右時間來...
無處不在的日期類
所有的類,我們已經寫到目前為止已經足夠簡單,我們已經能夠實現的功能,直接在類本身的定義。例如,我們無處不在的 日期類 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 classdate private defa...