C++
- RTTI是什么、
- 運行時型別識別、使程式能夠使用基類的指標或參考來檢查指標或者參考所指的物件的實際派生型別、
- 通過dynamic_cast運算子可以將基類(父類)指標或參考安全轉換成派生類(子類)指標或參考、
- typeid運算子、可以回傳指標和參考所指向物件的實際型別、
- ==基類中必須要有虛函式、這是RTTI(dynamin_cast運算子和typeid運算子)起作用的前提、
- dynamic_cast運算子、
- dynamic_cast<希望轉成的目標型別>(要轉的指標物件);
- 如果參考轉換失敗會有std::bad_cast例外、撲捉例外 try{正常代碼} catch(要撲捉的例外){例外}:
類似與if else 先執行代碼、然后catch開始撲捉代碼例外、沒有代碼例外、正常執行、如果有代碼例外、則執行{}里面的代碼、catch后面的{} 大括號就像是兜底的作用
- typeid運算子、
- typeid(型別或者運算式)、
- 回傳的是常量物件的參考、即type_info
- cout<<tyoeud()<<endl;
- 主要用于比較兩個指標是否指向同一型別物件、
- type_info類、
- 標準庫、是一個類、
- RTTI與虛函式表、
- 類中含有虛函式、編譯器就會對該類產生虛函式表、虛函式表是針對類而言、而虛函式中的每一項便是一個指標、指向虛函式的入口地址、
- 虛函式表的第一個表指向的是類所關聯的type_info物件、
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/174651.html
標籤:C++
上一篇:網站建設程序中需要注意哪些問題?
