天天看點

[c++] 使用 typeid 來完成 RTTI

運作時識别  RTTI

運作時識别的功能由兩個運算符來實作:

1)typeid,次運算符會傳回入參的類型

2)dynamic_cast,把基類的指針或引用,轉換成派生類的指針或引用

RTTI的用途:用來在未定義虛函數的場景下,通過typeid和dynamic_cast來模仿多态。即typeid判斷實際指針類型,再由dynamic_cast轉換指針,最後調用非虛函數。(非虛函數跟着指針走)

if(typeid(i)==typeid(int)){
                log("i is int type")
            }      

typeid 的重要特性