C++ static_cast和dynamic_cast

使用場景

static_cast 靜態類型轉換。如int轉化成char
reinterpret_cast 重新解釋類型
dynamic_cast 命名上理解是動態類型轉換,如子類和父類之間的多態類型轉換
const_cast 字面上理解就是去const屬性

類型轉換介紹

static_cast<>() 靜態類型轉換,編譯時c++編譯器會做類型檢查
若不同類型之間,進行強制類型轉換,reinterpret_cast<>() 進行重新編譯
dynamic_cast<>() 動態類型轉換,安全的基類和子類之間轉換,運行時類型檢查
const_cast<>() 去除變量的只讀屬性

三種使用形式

dynamic_cast<type*> (e) //e必須爲指針
dynamic_cast<type&> (e) // e 必須爲一個左值
dynamic_cast<type&&> (e) //e不能是左值

參考

https://blog.csdn.net/lpl312905509/article/details/104046600

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章