靜態轉換(static_cast)
用于類層次結構中基類(父類)和派生類(子類)之間指針或引用的轉換。
1、進行上行轉換(把派生類的指針或引用轉換成基類表示)是安全的;
2、進行下行轉換(把基類指針或引用轉換成派生類表示)時,由于沒有動態類型檢查,所以是不安全的。
3、用于基本數據類型之間的轉換,如把int轉換成char,把char轉換成int。這種轉換的安全性也要開發人員來保證。
動態轉換(dynamic_cast)
1、dynamic_cast主要用于類層次間的上行轉換和下行轉換;
2、在類層次間進行上行轉換時,dynamic_cast和static_cast的效果是一樣的;
3、在進行下行轉換時,dynamic_cast具有類型檢查的功能,比static_cast更安全。
常量轉換(const_cast)
1、該運算符用來修改類型的const屬性。
2、常量指針被轉化成非常量指針,并且仍然指向原來的對象;
3、常量引用被轉換成非常量引用,并且仍然指向原來的對象;
注意:不能直接對非指針和非引用的變量使用const_cast操作符去直接移除它的const
重新解析轉換(reinterpret_cast)
這是最不安全的一種轉換機制,最有可能出問題。主要用于將一種數據類型從一種類型轉換為另一種類型。它可以將一個指針轉換成一個整數,也可以將一個整數轉換成一個指針。
更多關于物聯網培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。