C 類前置宣告的兩個用處

2021-06-08 20:11:57 字數 343 閱讀 9732

類前置宣告: 只是宣告了類 (class qcheckbox;),而不提供類定義。

用處1:交叉引用。

類a用了類b,而b又反過來用了a。

事實上我們只能先對乙個類進行定義,要麼a,要麼b。

假設我們先對a進行定義,那麼在a中必須使用到b,而此時b還沒有定義。

這種情況下,可以對b進行類前置宣告,即在定義a之前,宣告類b。

用處2:使編譯更快一些。

不存在交叉引用的要求下,也可能使用類前置宣告。

當使用某一類物件的指標,而沒有訪問它的內容時,編譯程式無須知道該類的完整定義。此時可以不包含該類的標頭檔案,而只使用該類的前置宣告,這樣可以使編譯過程更快一些。

C 類宣告 類前置宣告

參考自 關於前置型別宣告的注意點 一 class b class a class b 上述 能夠通過編譯。二 class b class a class b 上述 報錯。error list c2079 a adata uses undefined class b c2027 use of unde...

C 模板類的前置宣告

template class linkedstack template class node template class linkedstack linkedstack bool isempty const bool isfull const t top const linkedstack add...

C 類的前置宣告用法

問題 兩個類a b相互呼叫,在兩個類a和b的標頭檔案中 include 了所需的標頭檔案,編譯報錯。為什麼呢,a需要b,b需要a,形成了迴圈,違反了程式的確定性原則。原因在於 class bbb 這種方式僅僅是一種符號宣告,告訴編譯器存在bbb這個類,不會去確定bbb這個類的所佔資源 記憶體 大小和...