C typeid關鍵字詳解

2021-07-25 19:49:08 字數 1927 閱讀 6475

注意:typeid是操作符,不是函式。這點與sizeof類似)

執行時獲知變數型別名稱,可以使用 typeid(變數).name()

需要注意不是所有編譯器都輸出」int」、」float」等之類的名稱,對於這類的編譯器可以這樣使用

int ia = 3;

if(typeid(ia) == typeid(int))

bool before(const type_info& __arg) const

bool

operator==(const type_info& __arg) const

bool

operator!=(const type_info& __arg) const

virtual

bool __is_pointer_p() const;

virtual

bool __is_function_p() const;

protected:

const

char *__name;

explicit type_info(const

char *__n): __name(__n)

private:

type_info& operator=(const type_info&);

type_info(const type_info&);

};} // extern "c++"

#endif

下表列出了使用typeid操作符的表示式的值

int a;

double b;

char * c;

long d;

運算

描述typeid(a) == typeid(int)

true

typeid(a) == typeid(float)

false

typeid(a) == typeid(int *)

false

typeid(b) == typeid(double)

true

typeid(b) == typeid(float)

false

typeid(b) == typeid(long double)

false

typeid(c) == typeid(char *)

true

typeid(c) == typeid(char)

false

typeid(c) == typeid(string)

false

typeid(d) == typeid(long)

true

typeid(d) == typeid(int)

false

操作符typeid返回的是乙個type_info類(用於描述資料型別的乙個系統類)物件的引用。這個操作符可以用於表示式和型別名(包括自定的資料型別,比如類)。

參照

【c++】typeinfo.h

c++中的typeid關鍵字

C typeid關鍵字詳解

注意 typeid是操作符,不是函式。這點與sizeof類似 執行時獲知變數型別名稱,可以使用 typeid 變數 name 需要注意不是所有編譯器都輸出 int float 等之類的名稱,對於這類的編譯器可以這樣使用 int ia 3 if typeid ia typeid int bool be...

C typeid關鍵字詳解

注意 typeid是操作符,不是函式。這點與sizeof類似 執行時獲知變數型別名稱,可以使用 typeid 變數 name 需要注意不是所有編譯器都輸出 int float 等之類的名稱,對於這類的編譯器可以這樣使用 1 int ia 3 2 if typeid ia typeid int 3 在...

關鍵字const詳解

關鍵字const 1 用關鍵字const定義變數指所定義的常量。即恆定的變數,即不可改變的變數。例 const int i 10 此時 i 就是乙個整型的常量,其值不能改變。在c 中如果用const定義乙個物件,那麼物件中的成員變數就是常數,不能改變 只能為初始化的值 如果用const定義類中的成員...