C++新旧类型转换小记
舊式類型轉(zhuǎn)換可應(yīng)對(duì)一切轉(zhuǎn)換,不管合不合理,有沒(méi)有風(fēng)險(xiǎn),你讓我轉(zhuǎn)我就轉(zhuǎn)給你,后果自負(fù)。
新式類型轉(zhuǎn)換比較安全,主要體現(xiàn)在父子類之間的運(yùn)行時(shí)轉(zhuǎn)換 dynamic_cast上,若轉(zhuǎn)換失敗則返回空指針,而舊式類型轉(zhuǎn)換則發(fā)現(xiàn)不了失敗(總是認(rèn)為成功,永遠(yuǎn)不會(huì)返回空指針),導(dǎo)致運(yùn)行時(shí)崩潰。
?
1,static_cast, static 表示編譯時(shí)檢查的轉(zhuǎn)換,對(duì)應(yīng)運(yùn)行時(shí)檢查的轉(zhuǎn)換 dynamic_cast。注意,此轉(zhuǎn)換不能去除修飾性,如const,static,volatile等。
2,dynamic_cast ,與static_cast對(duì)應(yīng),運(yùn)行時(shí)動(dòng)態(tài)檢查,使用要求:被轉(zhuǎn)換對(duì)象必須有虛函數(shù)
3,const_cast,專門(mén)用于去除或增加const,volatile修飾、
4,static_cast,專門(mén)用于去除或增加static修飾
?
新式類型轉(zhuǎn)換出現(xiàn)的主要原因就是 dynamic_cast這個(gè)功能的需求,其它的都沒(méi)什么用處。
總結(jié)
以上是生活随笔為你收集整理的C++新旧类型转换小记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 有关Dispose,Finalize,G
- 下一篇: C++用参数返回结果与用返回值返回结果的