深入C++四種強(qiáng)制類型轉(zhuǎn)換的總結(jié)
更新時(shí)間:2013年05月16日 11:07:54 作者:
本篇文章是對C++中四種強(qiáng)制類型轉(zhuǎn)換進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
c++中提供了四種新的強(qiáng)制轉(zhuǎn)換分別是:const_cast、dynamic_cast、reinterpret_cast、static_cast.
這四種轉(zhuǎn)換類型,每一種都適用于特定的目的:
const_cast 一般用于強(qiáng)制取消對象的常量性。它是唯一能夠做到這一點(diǎn)的C++風(fēng)格的強(qiáng)制轉(zhuǎn)型。
dynamic_cast 主要用于執(zhí)行"安全向下轉(zhuǎn)型",也就是說,要確定一個(gè)對象是否是一個(gè)繼承體系中的一個(gè)特定類型。它是唯一不能用舊風(fēng)格語法執(zhí)行強(qiáng)制轉(zhuǎn)型。
reinterpret_cast 是特意用于底層轉(zhuǎn)型,導(dǎo)致實(shí)現(xiàn)以來的結(jié)果,例如,將一個(gè)指針轉(zhuǎn)換為一個(gè)整數(shù)。這樣的強(qiáng)制轉(zhuǎn)換在底層代碼外英愛極為罕見。
static_cast 可以用于強(qiáng)制隱型轉(zhuǎn)換,如non-const對象轉(zhuǎn)換為const對象,int轉(zhuǎn)換為double等。它還可以用于很多這樣的轉(zhuǎn)換的反向轉(zhuǎn)換,例如:void*指針轉(zhuǎn)型為有類型的指針,基指針轉(zhuǎn)換為派生類指針,但是它不能講一個(gè)const轉(zhuǎn)換為non-const,它最接近C風(fēng)格的轉(zhuǎn)換。
這四種轉(zhuǎn)換類型,每一種都適用于特定的目的:
const_cast 一般用于強(qiáng)制取消對象的常量性。它是唯一能夠做到這一點(diǎn)的C++風(fēng)格的強(qiáng)制轉(zhuǎn)型。
dynamic_cast 主要用于執(zhí)行"安全向下轉(zhuǎn)型",也就是說,要確定一個(gè)對象是否是一個(gè)繼承體系中的一個(gè)特定類型。它是唯一不能用舊風(fēng)格語法執(zhí)行強(qiáng)制轉(zhuǎn)型。
reinterpret_cast 是特意用于底層轉(zhuǎn)型,導(dǎo)致實(shí)現(xiàn)以來的結(jié)果,例如,將一個(gè)指針轉(zhuǎn)換為一個(gè)整數(shù)。這樣的強(qiáng)制轉(zhuǎn)換在底層代碼外英愛極為罕見。
static_cast 可以用于強(qiáng)制隱型轉(zhuǎn)換,如non-const對象轉(zhuǎn)換為const對象,int轉(zhuǎn)換為double等。它還可以用于很多這樣的轉(zhuǎn)換的反向轉(zhuǎn)換,例如:void*指針轉(zhuǎn)型為有類型的指針,基指針轉(zhuǎn)換為派生類指針,但是它不能講一個(gè)const轉(zhuǎn)換為non-const,它最接近C風(fēng)格的轉(zhuǎn)換。
您可能感興趣的文章:
- C++中的強(qiáng)制類型轉(zhuǎn)換操作詳解
- C++超詳細(xì)講解強(qiáng)制類型轉(zhuǎn)換的用法
- C++超詳細(xì)講解強(qiáng)制類型轉(zhuǎn)換
- C++強(qiáng)制類型轉(zhuǎn)換的四種方式
- C++ 強(qiáng)制類型轉(zhuǎn)換詳解
- C++中4種強(qiáng)制類型轉(zhuǎn)換的區(qū)別詳析
- 關(guān)于C++的強(qiáng)制類型轉(zhuǎn)換淺析
- C++中4種強(qiáng)制類型轉(zhuǎn)換的區(qū)別總結(jié)
- C++類的自動(dòng)轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換的實(shí)現(xiàn)示例
相關(guān)文章
c語言printf實(shí)現(xiàn)同一位置打印輸出的實(shí)例
下面小編就為大家?guī)硪黄猚語言printf實(shí)現(xiàn)同一位置打印輸出的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09用c語言實(shí)現(xiàn)HUP信號重啟進(jìn)程的方法
本篇文章是對使用c語言實(shí)現(xiàn)HUP信號重啟進(jìn)程的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05利用Matlab仿真實(shí)現(xiàn)圖像煙霧識別(k-means聚類圖像分割+LBP+PCA+SVM)
本文主要介紹了利用k-means聚類實(shí)現(xiàn)圖像分割+LBP算法進(jìn)行特征提取+PCA算法進(jìn)行特征降維+SVM算法訓(xùn)練二分類模型從而實(shí)現(xiàn)煙霧識別。文中介紹很詳細(xì),感興趣的朋友可以了解一下2021-12-12