class 類名只是宣告存在這麼乙個類,但是通過這個宣告無法得到任何關於此類的具體資訊。這樣你可以在其他使用到的地方宣告乙個該型別的指標。
include標頭檔案則是將整個該標頭檔案與使用到的地方關聯起來。使用class 類名一般是為了去除編譯依賴,減少編譯消耗的時間。#include 「xx.h」 在編譯的時候把xx.**件直接展開,所以裡面的介面都能用,可以申明物件。但是class xx;這種方式就不會,你只能使用它的指標或者引用,你不能建立申明物件。
假設b的定義是在b.h中,而存在下面這個檔案:
// a.h
--------------------------------------------
class a ;
--------------------------------------------
// a.cpp
--------------------------------------------
#include
// 其他具體實現
--------------------------------------------
那麼直接編譯的話,由於編譯器不知道b的存在,就會報編譯錯誤。為了解決這個問題,可以在a.h中include b.h,如下:
// a.h
--------------------------------------------
#include
class a ;
--------------------------------------------
但是這樣,一旦b的定義修改,那麼a.h也就會重新編譯,導致所有用到a.h的檔案也需要重新編譯,這樣就造成了編譯依賴,增加了編譯的時間,在大型專案中,如果很多這樣的地方的話,甚至可能極度增加編譯時間。為了避免這種情況,我們可以這麼做
// a.h
--------------------------------------------
class b;
class a ;
--------------------------------------------
// a.cpp
--------------------------------------------
#include
#include
// 其他具體實現
--------------------------------------------
通過在a.h中宣告class b,在a.cpp中include b.h,這樣即使b.h改變,a.h也不會改變,其他使用到a.h的檔案也就不需要重新編譯了,這樣就可以避免編譯依賴。
Java類名 class和getClass 區別
區別 類名.class叫做 類字面量 因class是關鍵字,所以類名.class編譯時確定。getclass 執行時根據實際例項確定,getclass 是動態而且是final的。string.class 是能對類名的引用取得在記憶體中該型別class物件的引用,new string getclass...
類名 class 和getClass的區別
區別 類名.class叫做 類字面量 因class是關鍵字,所以類名.class編譯時確定。getclass 執行時根據實際例項確定,getclass 是動態而且是final的。string.class 是能對類名的引用取得在記憶體中該型別class物件的引用,new string getclass...
jQuery類名選擇器( class)
一 介紹 類名選擇器是通過元素擁有的css類的名稱查詢匹配的dom元素。在乙個頁面中,乙個元素可以有多個css類,乙個css類又可以匹配多個元素,如果有元素中有乙個匹配的類的名稱就可以被類名選擇器選取到。類名選擇器很好理解,在大學的時候大部分人一定都選過課,可以把css類名理解為課程名稱,元素理解成...