type_info 類別
Type_info 類別會描述編譯器所產生的程式中的型別資訊。 這個類別的物件可以有效地儲存的指標型別的名稱。 Type_info 類別也會儲存為編碼的值適用於比較是否相等的兩個型別或定序順序。 編碼規則排序法則來排列型別未指定和程式之間可能會不同。
<typeinfo>標頭檔必須包含要使用 type_info 類別。 介面 type_info 類別是:
class type_info {
public:
virtual ~type_info();
size_t hash_code() const
_CRTIMP_PURE bool operator==(const type_info& rhs) const;
_CRTIMP_PURE bool operator!=(const type_info& rhs) const;
_CRTIMP_PURE int before(const type_info& rhs) const;
_CRTIMP_PURE const char* name() const;
_CRTIMP_PURE const char* raw_name() const;
};
無法具現化物件的 type_info 類別直接,因為類別只有私用的複製建構函式。 唯一的方法來建構 (暫存) type_info 物件是使用 typeid 運算子。 指派運算子也為私用的因為您無法複製,或指定類別的物件 type_info。
type_info::hash_code 定義適用於對應的型別值的雜湊函式 typeinfo 為索引值的散發。
這些運算子==和!=可以用來比較相等和不相等,與其他 type_info 物件,分別。
定序順序的型別和繼承關聯性之間沒有任何連結。 使用 type_info::before 成員函式來判斷型別的定序順序。 不保證, type_info::before ,將會產生不同的程式或甚至不同過的相同程式中相同的結果。 如此一來,在 type_info::before 類似於 [地址的 (&) 運算子。
Type_info::name 成員函式會傳回 const char * 以 null 結束的字串,表示型別的人們可讀取的名稱。 所指到的記憶體已快取,而且應該永遠不會被解除直接配置。
Type_info::raw_name 成員函式會傳回 const char * 以 null 結束的字串,表示裝飾的名稱的物件型別。 以裝飾形式來節省空間實際儲存名稱。 因此,這個函式會較快, type_info::name 因為無需在 undecorate 的名稱。 所傳回的字串 type_info::raw_name 函式是用於比較作業,但並不容易閱讀。 如果您需要的人們可讀取的字串,請使用 type_info::name 而運作。
多型類別才會產生型別資訊 /GR (啟用執行階段型別資訊) 指定編譯器選項。