C++ 補充 & C++ 11 - C++ 類型轉換使用建議

類型轉換使用建議

1)static_cast靜態類型轉換,編譯的時c++編譯器會做編譯時的類型檢查;隱式轉換;
基本類型轉換,父子類之間合理轉換

2)若不同類型之間,進行強制類型轉換,用reinterpret_cast<>() 進行重新解釋
建 議:

C語言中 能隱式類型轉換的,在c++中可用 static_cast<>()進行類型轉換。因C++編譯器在編譯檢查一般都能通過;C語言中不能隱式類型轉換的,在c++中可以用 reinterpret_cast<>() 進行強制類型解釋。

總結:static_cast<>()和reinterpret_cast<>() 基本上把C語言中的 強制類型轉換給覆蓋,注意reinterpret_cast<>()很難保證移植性。

3)dynamic_cast<>(),動態類型轉換,安全的虛基類和子類之間轉換;運行時類型檢查
4)const_cast<>(),去除變量的只讀屬性

最後的忠告:程序員必須清楚的知道: 要轉的變量,類型轉換前是什麼類型,類型轉換 後是什麼類型,轉換後有什麼後果。
C++大牛建議:一般情況下,不建議進行類型轉換;避免進行類型轉換。

結語:

時間: 2020-07-02

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