亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++的四種強制類型轉(zhuǎn)換

2019-11-11 07:49:05
字體:
供稿:網(wǎng)友

C++的四種強制類型轉(zhuǎn)換,所以C++不是類型安全的。分別為:static_cast , dynamic_cast , const_cast , reinterPRet_cast

為什么使用C風格的強制轉(zhuǎn)換可以把想要的任何東西轉(zhuǎn)換成合乎心意的類型。那為什么還需要一個新的C++類型的強制轉(zhuǎn)換呢?

新類型的強制轉(zhuǎn)換可以提供更好的控制強制轉(zhuǎn)換過程,允許控制各種不同種類的強制轉(zhuǎn)換。C++中風格是static_cast<type>(content)。C++風格的強制轉(zhuǎn)換其他的好處是,它們能更清晰的表明它們要干什么。程序員只要掃一眼這樣的代碼,就能立即知道一個強制轉(zhuǎn)換的目的。

四種轉(zhuǎn)換的區(qū)別:

static_cast:可以實現(xiàn)C++中內(nèi)置基本數(shù)據(jù)類型之間的相互轉(zhuǎn)換。

1int c=static_cast<int>(7.987);

如果涉及到類的話,static_cast只能在有相互聯(lián)系的類型中進行相互轉(zhuǎn)換,不一定包含虛函數(shù)。

classA{};classB:public A{};classC{}; int main(){    A* a=newA;    B* b;    C* c;    b=static_cast<B>(a); // 編譯不會報錯, B類繼承A類    c=static_cast<B>(a); // 編譯報錯, C類與A類沒有任何關(guān)系    return1;}

const_cast: const_cast操作不能在不同的種類間轉(zhuǎn)換。相反,它僅僅把一個它作用的表達式轉(zhuǎn)換成常量。它可以使一個本來不是const類型的數(shù)據(jù)轉(zhuǎn)換成const類型的,或者把const屬性去掉。

reinterpret_cast: 有著和C風格的強制轉(zhuǎn)換同樣的能力。它可以轉(zhuǎn)化任何內(nèi)置的數(shù)據(jù)類型為其他任何的數(shù)據(jù)類型,也可以轉(zhuǎn)化任何指針類型為其他的類型。它甚至可以轉(zhuǎn)化內(nèi)置的數(shù)據(jù)類型為指針,無須考慮類型安全或者常量的情形。不到萬不得已絕對不用。

dynamic_cast: 

(1)其他三種都是編譯時完成的,dynamic_cast是運行時處理的,運行時要進行類型檢查。

(2)不能用于內(nèi)置的基本數(shù)據(jù)類型的強制轉(zhuǎn)換。

(3)dynamic_cast轉(zhuǎn)換如果成功的話返回的是指向類的指針或引用,轉(zhuǎn)換失敗的話則會返回NULL。

(4)使用dynamic_cast進行轉(zhuǎn)換的,基類中一定要有虛函數(shù),否則編譯不通過。

        B中需要檢測有虛函數(shù)的原因:類中存在虛函數(shù),就說明它有想要讓基類指針或引用指向派生類對象的情況,此時轉(zhuǎn)換才有意義。

        這是由于運行時類型檢查需要運行時類型信息,而這個信息存儲在類的虛函數(shù)表(關(guān)于虛函數(shù)表的概念,詳細可見<Inside c++ object model>)中,

        只有定義了虛函數(shù)的類才有虛函數(shù)表。

 (5)在類的轉(zhuǎn)換時,在類層次間進行上行轉(zhuǎn)換時,dynamic_cast和static_cast的效果是一樣的。在進行下行轉(zhuǎn)換時,dynamic_cast具有類型檢查的功能,比               static_cast更安全。向上轉(zhuǎn)換即為指向子類對象的向下轉(zhuǎn)換,即將父類指針轉(zhuǎn)化子類指針。向下轉(zhuǎn)換的成功與否還與將要轉(zhuǎn)換的類型有關(guān),即要轉(zhuǎn)換的指針指向的對象的實際類型與轉(zhuǎn)換以后的對象類型一定要相同,否則轉(zhuǎn)換失敗。

參考例子:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include<iostream>#include<cstring>usingnamespace std;classA{   public:   virtualvoid f()   {       cout<<"hello"<<endl;       };}; classB:public A{    public:    voidf()    {        cout<<"hello2"<<endl;        }; }; classC{  voidpp()  {      return;  }}; int fun(){    return1;}int main(){    A* a1=newB;//a1是A類型的指針指向一個B類型的對象    A* a2=newA;//a2是A類型的指針指向一個A類型的對象    B* b;    C* c;    b=dynamic_cast<B*>(a1);//結(jié)果為not null,向下轉(zhuǎn)換成功,a1之前指向的就是B類型的對象,所以可以轉(zhuǎn)換成B類型的指針。    if(b==NULL)    {        cout<<"null"<<endl;    }    else    {        cout<<"not null"<<endl;    }    b=dynamic_cast<B*>(a2);//結(jié)果為null,向下轉(zhuǎn)換失敗    if(b==NULL)    {        cout<<"null"<<endl;    }    else    {        cout<<"not null"<<endl;    }    c=dynamic_cast<C*>(a);//結(jié)果為null,向下轉(zhuǎn)換失敗    if(c==NULL)    {        cout<<"null"<<endl;    }    else    {        cout<<"not null"<<endl;    }    delete(a);    return0;}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

亚洲一区二区三区在线观看网站| 99久久国产免费| 精品国产一二| 在线免费视频一区二区| 人人干人人爱人人爱| 国产精品久久久久av电视剧| 精品人妻伦九区久久aaa片| 亚洲精品99999| 久久久精品人妻一区二区三区| 亚洲japanese制服美女| 亚洲品质自拍| 成人a免费视频| 国产精品极品美女在线观看| 欧美激情一区在线观看| 精品久久久久久久大神国产| 欧美另类videos| 91亚洲免费视频| 日韩欧美国产中文字幕| 国产精品免费入口| 高潮在线视频| 在线成人av网站| 亚洲伊人成人网| 人妻少妇精品视频一区二区三区| 国产欧美va欧美va香蕉在线| 亚洲人在线播放| 日韩高清在线电影| av成人福利| 亚洲熟女一区二区三区| 国产精品日韩成人| 中日韩脚交footjobhd| 三上悠亚在线观看视频| 欧美精品一二三四区| av黄色在线播放| 好看的日韩av电影| ww亚洲ww在线观看国产| 最近免费观看高清韩国日本大全| 99热在线成人| 高清欧美性猛交| 国产高清精品一区二区三区| 精品久久久无码人妻字幂| 91看片免费版| 欧美日韩国产成人在线观看| 九九热中文字幕| 欧美国产日韩在线| 婷婷六月综合网| 中文字幕一区二区三区免费视频| 亚洲人成网站在线| 在线观看精品一区| 女人色在线免费视频| 深夜福利成人| 91tv在线观看| 亚洲在线视频观看| 无码人妻精品一区二区中文| 一二三四在线观看免费高清中文在线观看| bt7086福利一区国产| 国产成人亚洲综合小说区| 在线中文字幕-区二区三区四区| 黄色国产在线| 国产欧美精品一区二区三区介绍| 波多野结衣中文在线| 免费视频国产一区| 欧美精品在线第一页| 激情亚洲综合网| 九色|91porny| 国产露脸无套对白在线播放| 国产又爽又黄又刺激的软件| 日韩电影在线免费看| 欧美日韩性视频一区二区三区| 99re8这里有精品热视频8在线| 亚洲调教视频在线观看| 91精品国产一区二区三区蜜臀| 国产福利小视频| 欧美高清电影在线看| bbbbbbbbbbb在线视频| 中国av免费看| 爱爱精品视频| 亚洲激情中文| 99久久99热久久精品免费看| 久久久不卡网国产精品二区| 成人永久aaa| 在线成人av电影| 一级毛片在线| 欧美韩国日本在线| 国产成人视屏| 久久99精品视频一区97| 一区二区三区精| 9191国语精品高清在线| 麻豆av一区二区| 少妇精品无码一区二区三区| 女同一区二区| 一区二区激情视频| 久久亚洲精华国产精华液| 男女视频在线观看免费| 91啪国产在线| 91精品视频网站| 性欧美长视频| japanese中文字幕| 国产精品精品视频一区二区三区| 国产二级一片内射视频播放| 乱人伦xxxx国语对白| 日本人成精品视频在线| 国产一区二区三区精品欧美日韩一区二区三区| 激情六月丁香婷婷| 无码日本精品xxxxxxxxx| 亚洲精品天堂网| 久久综合伊人77777麻豆| 波多野结衣中文字幕久久| 免费在线观看视频| 欧美精品色视频| 在线观看日韩高清av| аⅴ成人天堂中文在线| 2021中文字幕一区亚洲| 在线精品在线| av一线二线| 五月天婷亚洲天综合网鲁鲁鲁| 老司机精品视频在线观看6| 国产精品一区二区不卡| 老鸭窝亚洲一区二区三区| 在线观看国产精品网站| 开心激情综合网| 2020国产在线| 国产欧美婷婷中文| 久久99国产精品视频| 成人免费毛片东京热| 国产无套粉嫩白浆内谢| 日韩一区二区三区视频在线观看| 国产精品色视频| 久久国产一二区| 亚洲人成久久| 午夜老司机福利| 26uuu国产电影一区二区| 一级特黄曰皮片视频| 成人在线免费观看视视频| 日韩中文字幕在线观看| 亚洲成人1234| 在线观看成人av| 成人免费视频在线观看| 香蕉成人av| 国产在线播放91| 野花视频免费在线观看| 精品裸体舞一区二区三区| 日韩动漫一区| 欧美日韩国产色站一区二区三区| 久久久久久久久久久久久久av| 亚洲欧美制服第一页| 精品中文字幕一区二区三区av| 欧美一区二区三区四区高清| 日韩精品视频在线免费观看| 日韩小视频网站| 91玉足脚交嫩脚丫在线播放| 91青青草免费观看| 在线激情小视频| 五月天婷婷综合网| 四虎永久国产精品| 涩涩日韩在线| 日韩中文字幕一区二区| 国产小视频免费在线网址| 国产精品久久久久久久久久辛辛| 欧美一区二区三区视频免费| 日本最新中文字幕| 日本欧美精品在线| a级毛片免费观看在线| 免费萌白酱国产一区二区三区| 国产三级精品视频| 国产xxx视频| 亚洲国产精品专区久久| 久久精品—区二区三区舞蹈| 中文字幕巨乱亚洲| 亚洲精品字幕| 精品视频三区| 久久香蕉国产线看观看99| 久久久久久国产精品免费免费| 色偷偷www8888| 一区二区三区在线免费观看| 国产精品人人妻人人爽| 亚洲三级在线免费| 爽好久久久欧美精品| 91高清视频免费观看| 伊人久久大香线蕉综合网蜜芽| 国产欧美日韩综合精品| 中文天堂在线资源| 999在线观看免费大全电视剧| 欧美美女性生活视频| 久久精品凹凸全集| 性xxxx视频播放免费| 天天干在线视频论坛| 日韩av日韩在线观看| 日韩中文字幕精品| 久久精品99| 欧美一区二区三区久久久| 69视频在线播放| 亚洲第一精品久久忘忧草社区| 久久riav二区三区| 国产美女自慰在线观看| 亚洲三级电影全部在线观看高清| 日韩一区二区免费看| www.黄色com| 国产精品电影久久久久电影网| 国产亚洲欧美日韩美女| 欧美人妻一区二区| 婷婷综合在线观看| 国产精品一区二区三区观看| 精品视频一区二区在线观看| 激情综合网av| 国产一区中文字幕| wwwwww99| 国产精品日韩久久久久| 日本高清不卡一区二区三区视频| 天天曰天天操| 欧美成人精品影院| 成人免费在线小视频| 日本在线免费观看视频| 国产影视一区二区| 欧美成人三级在线播放| 欧美日韩性在线观看| 午夜精品99久久免费| 成年人福利网站| 97人妻天天摸天天爽天天| 亚洲成人免费av| 性色av一区二区三区| 奇米一区二区| 国产又粗又长又大的视频| 亚洲人视频在线观看| 亚洲天堂自拍偷拍| 日本不卡的三区四区五区| 99久久国产综合精品女小说| 亚洲品质自拍视频网站| 日韩成人三级| 久久久久久a亚洲欧洲aⅴ| 国产在线视频精品视频免费看| 荫蒂被男人添免费视频| 欧美在线观看一二区| 久久一区二区三区超碰国产精品| 欧美日本一道本| 四虎久久免费| 成人台湾亚洲精品一区二区| 国产在线不卡一区| 午夜精品久久久久久久| 国产一区欧美二区| 欧美日韩在线不卡一区| 久久艳片www.17c.com| 男人操女人在线观看| av一区二区三区在线| 日韩.com| 高h调教冰块play男男双性文| 欧美日韩综合在线观看| 一区二区在线免费看| 亚洲精品成av人片天堂无码| 国产伦精品一区二区三区妓女| 欧美日韩视频网站| 国内外成人激情视频| av中文字幕亚洲| 亚洲啊v在线免费视频| 可以直接看的无码av| 亚洲天堂中文在线| 久久三级视频| 乱中年女人av三区中文字幕| 国内一区二区三区| 蜜桃av久久久亚洲精品| 99久久国产综合精品色伊| 精品国产麻豆| 欧美成人激情视频| 免费视频观看成人| 国产精品三级美女白浆呻吟| 91精品国产综合久久久久久久久| 国产中文字幕在线看| 中文字幕 欧美 日韩| 黄色a在线观看| 日韩高清dvd碟片| 啦啦啦在线视频免费观看高清中文| 亚洲成av人乱码色午夜| 亚洲精选免费视频| 国产精品久久久久aaaa| 日本免费视频在线观看| 欧美黑人经典片免费观看| 国产大片一区| 日韩在线短视频| 96精品久久久久中文字幕| 精品美女在线播放| 91久久一区二区| 成人亚洲综合| 成人偷拍自拍| 九色综合狠狠综合久久| 久久人体大胆视频| 国产精品高潮呻吟av| 91ts人妖另类精品系列| 综合av在线| 国产美女主播在线| 中文字幕第28页| 日韩精品一区二区三区视频在线观看| 日本美女一区| 亚洲一区二区三区视频在线| 欧美激情另类| 性欧美一区二区三区| 精品国产aⅴ| 韩国精品在线观看| 国产精欧美一区二区三区白种人| 国产在线播放一区| 综合电影一区二区三区| 蜜乳av一区二区| 超碰caoprom| 欧美激情视频一区二区三区免费| 日韩欧美高清在线播放| 99久久人妻精品免费二区| 日韩电影免费在线观看| 欧日韩不卡视频| 日本精品一区二区三区视频| 日韩亚洲欧美成人一区| www.se五月| 国产精品美女无圣光视频| 97碰碰碰免费色视频| av资源在线观看免费高清| 久久这里有精品15一区二区三区| 亚洲自拍偷拍网址| 欧美sm极限捆绑bd| 男人的天堂网av| 成人直播视频| 欧美午夜aaaaaa免费视频| 欧美 日韩 国产在线| 欧美一区二区三区四区五区六区| 亚洲三级电影在线观看| 国产极品嫩模在线观看91精品| 性生交大片免费看女人按摩| 久久九九亚洲综合| 久久婷婷久久| 亚洲精品国产精品国自产网站按摩| 欧美一级高清片在线观看| 亚洲尤物视频在线|