首頁 > 後端開發 > C++ > 主體

c++中typeid的用法

下次还敢
發布: 2024-05-01 11:42:17
原創
745 人瀏覽過

typeid 運算子取得物件的靜態類型訊息,傳回 type_info 對象,其中包含型別名稱、大小、對齊、基礎類別、修飾符等資訊。可透過 name()、before()、base() 等方法存取物件資訊。

c++中typeid的用法

C 中typeid 的用法

typeid 運算子是C 關鍵字,用於取得物件的靜態類型資訊。它會傳回一個 type_info 對象,該對象包含有關對象類型的各種資訊。

用法:

typeid 運算子後面跟著一個表達式,該表達式表示要取得其類型資訊的表達式。表達式可以是:

  • 變數
  • 表達式
  • 函數傳回型別
  • 型別別名

語法:

<code class="cpp">typeid(expression) // 其中 expression 是要获取其类型信息的表达式</code>
登入後複製

傳回值:

typeid 運算子傳回一個type_info 對象,其中包含有關物件類型的下列資訊:

  • 類型名稱
  • 類型大小
  • 類型對齊
  • 類型衍生訊息
  • 類型基礎資訊
  • 類型modifier 訊息
  • 類型修飾資訊

可以透過下列方法存取type_info 物件中的資訊:

  • name():傳回型別名稱
  • before() 和after():從衍生類別中取得基礎類別和從基礎類別中取得衍生類別
  • base():傳回直接基礎類別
  • grow() 和shrink( ):修改型別名稱中的陣列大小
  • modifier():傳回型別修飾符

範例:

<code class="cpp">int main() {
  int x;
  std::string s;
  std::cout << typeid(x).name() << std::endl; // 输出:int
  std::cout << typeid(s).name() << std::endl; // 输出:std::__cxx11::basic_string<char>
  return 0;
}</code>
登入後複製

注意事項:

  • typeid 運算子只能用於靜態型別資訊。它不能用於取得物件的運行時類型資訊。
  • typeid 運算子的結果可能會因編譯器和平台而異。
  • typeid 運算子的開銷很小,但頻繁使用它可能會降低效能。

以上是c++中typeid的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
c++
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板