運行時類型識別(RTTI)

運行時類型識別(RTTI)

RTTI是什麼?

  • 通過RTTI程序能夠使用基類的指針或引用來檢索這些指針或引用所指對象的實際派生類型
  • 通過兩個操作符提供RTTI,typeid操作符,dynamic_case操作符。

虛函數和dynamic_case選擇

  • 當具有基類的引用或指針時,但需要執行不是基類組成部分的派生類操作時,需要動態的強制類型轉換。通常,從基類指針獲得派生類行爲最好的方法是通過虛函數。當使用虛函數時候,編譯器自動根據對象的實際類型選擇正確的函數。但是,在某些情況下,不可能使用虛函數。在這些情況下,RTTI提供可選的機制。這種機制容易出錯,必須知道將類型轉換爲哪種類型,並且必須檢查轉換是否成功。
  • 注意:對於帶虛函數的類,在運行時執行RTTI操作符,對於其他類型,在編譯時計算RTTI操作符。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章