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