c++中任意類型的研究

- c或者c++中,可以指向任意類型的關鍵字就是無符號類型void*,任何一個對象都可以使用void*來指向。
    - 很顯然,這種使用方式極其不安全。
    - 因爲void*是指針,所指向的對象如果已經被釋放,再使用any時就會出現問題;
    - 如果這種情況下,重新new一個相同的對象,使用any指向new的對象,不過這樣的話需要自己管理指針,使用起來會非常麻煩。

- 在c++中,有個高級的功能就是運行時類型識別(RTTI),其中可以使用typeid操作符獲得指針或引用所指對象的實際類型

- Any內部維護了一個基類指針,通過基類指針擦除具體類型,any_cast時再通過向下轉型獲取實際數據。當轉型失敗時打印詳情。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章