這篇文章的內(nèi)容主要圍繞const_cast,dynamic_cast,reinterpret_cast,static_cast四種轉(zhuǎn)換的區(qū)別是什么進(jìn)行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學(xué)習(xí),值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!
網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)站,高端網(wǎng)頁制作,對成都廣告制作等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)網(wǎng)站推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
C++是一種強(qiáng)類型語言,對類型的檢查非常嚴(yán)格,我們可以使用C語言中的(NewType)Expression來對某個(gè)變量或者表達(dá)式返回值進(jìn)行強(qiáng)轉(zhuǎn),也可以使用C++中提供的新式轉(zhuǎn)換操作符:const_cast,dynamic_cast,reinterpret_cast,static_cast。下面介紹著四種轉(zhuǎn)換使用的不同場景。
const_cast顧名思義,用來將對象的常亮性轉(zhuǎn)除,使常亮可以被修改。const_cast(varible)中的type必須是指針,引用,或者指向?qū)ο箢愋统蓡T的指針。比如以下用法是錯(cuò)誤的:
將int改為int&就可以正常編譯通過,且輸出a值為4:
定義三個(gè)類,父類A,子類B和C,B和C中分別有不同的成員函數(shù)TestB()和TestC(),然后再用A指針分別指向new出來的A,B,C對象,放入一個(gè)數(shù)組:
此時(shí)str和p的值時(shí)完全相同的,reinterpret_cast的作用是說將指針str的值以二進(jìn)制的方式解釋為整型。
這種操作,我在實(shí)際項(xiàng)目中和從來沒有用到過,僅限于書面基礎(chǔ)知識(shí)的了解。
static_cast用來處理隱式轉(zhuǎn)換,等同于C語言中的(NewType)Expression強(qiáng)轉(zhuǎn),它可以將int轉(zhuǎn)為float,也可以將char*轉(zhuǎn)為int,將指向基類的指針轉(zhuǎn)為一個(gè)指向子類的指針,同時(shí)可以將non-const轉(zhuǎn)為const對象,但是它不能將一個(gè)const對象轉(zhuǎn)為non-const(這個(gè)是const_cast的功能)。
感謝你的閱讀,相信你對“const_cast,dynamic_cast,reinterpret_cast,static_cast四種轉(zhuǎn)換的區(qū)別是什么”這一問題有一定的了解,快去動(dòng)手實(shí)踐吧,如果想了解更多相關(guān)知識(shí)點(diǎn),可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站!小編會(huì)繼續(xù)為大家?guī)砀玫奈恼拢?/p>
當(dāng)前文章:const_cast,dynamic_cast,reinterpret_cast,static_cast四種轉(zhuǎn)換的區(qū)別是什么
URL分享:http://weahome.cn/article/gdcepi.html