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