typeid是c++中rtti(run-timetype information, 執行時型別識別)機制的組成部分,其目的是根據傳入已有的引數,來判斷引數的資料型別。
對於基本資料型別的用法與執行結果(g++ 6.3.0):
#include
#include
using
namespace
std;
int main()
執行結果:
leo@leo-x550jd:~$ ./a.out ii
ffdd
ccpc
對於類中的用法和執行結果(g++ 6.3.0):
#include
#include
using
namespace
std;
//基類
class base
~base(){};
};//派生類
class person : public base
~person(){};
};int main()
執行結果:
4base
4base
6person
6person
p4base
p4base
4base
其中,p開頭的是指標型別。 C 關鍵字typeid 執行時型別檢查
在揭開typeid神秘面紗之前,我們先來了解一下 rtti run time type identification,執行時型別識別 它使程式能夠獲取由基指標或引用所指向的物件的實際派生型別,即允許 用指向基類的指標或引用來操作物件 的程式能夠獲取到 這些指標或引用所指物件 的實際派生型別。在c 中...
c中的關鍵字
一 register 作用 請求編譯器盡可能的將變數存在cpu內部暫存器中,一般的變數存在記憶體中,當需要時cpu再從記憶體中把它抓取到cpu中,使用register把它存在cpu中省去了cpu從記憶體中抓取資料的時間,提高執行效率。注意 1 盡可能,因為cpu記憶體有限,不可能全放在裡面,一般把頻...
C 中struct關鍵字和class關鍵字的區別
剛開始接觸 c 看到 中有struct關鍵字,還以為是用了結構體,結果後來發現 struct 和 class 一樣都用於類的定義,於是把兩者的差別記錄於此。一句話總結 兩者均可用於定義類,唯一的區別是兩者定義的類的預設訪問許可權有差別。其實比兩者差別更重要的是,我很好奇為什麼 c 中會存在兩個用於定...