青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

流量統計:
Rixu Blog (日需博客)
日需博客,每日必需來踩踩哦..
posts - 108,comments - 54,trackbacks - 0

C風格的強制類型轉換(Type Cast)很簡單,不管什么類型的轉換統統是:
TYPE b = (TYPE)a。
C++風格的類型轉換提供了4種類型轉換操作符來應對不同場合的應用。

const_cast,字面上理解就是去const屬性。
static_cast,命名上理解是靜態類型轉換。如int轉換成char。
dynamic_cast,命名上理解是動態類型轉換。如子類和父類之間的多態類型轉換。
reinterpreter_cast,僅僅重新解釋類型,但沒有進行二進制的轉換。
4種類型轉換的格式,如:TYPE B = static_cast(TYPE)(a)。

const_cast
去掉類型的const或volatile屬性。

1 struct SA {
2 int i;
3 };
4 const SA ra;
5 //ra.i = 10; //直接修改const類型,編譯錯誤
6 SA &rb = const_cast<SA&>(ra);
7 rb.i = 10;

static_cast

類似于C風格的強制轉換。無條件轉換,靜態類型轉換。用于:
1. 基類和子類之間轉換:其中子類指針轉換成父類指針是安全的;但父類指針轉換成子類指針是不安全的。(基類和子類之間的動態類型轉換建議用dynamic_cast)
2. 基本數據類型轉換。enum, struct, int, char, float等。static_cast不能進行無關類型(如非基類和子類)指針之間的轉換。
3. 把空指針轉換成目標類型的空指針。
4. 把任何類型的表達式轉換成void類型。
5. static_cast不能去掉類型的const、volitale屬性(用const_cast)。

1 int n = 6;
2 double d = static_cast<double>(n); // 基本類型轉換
3 int *pn = &n;
4 double *d = static_cast<double *>(&n) //無關類型指針轉換,編譯錯誤
5 void *p = static_cast<void *>(pn); //任意類型轉換成void類型

dynamic_cast
有條件轉換,動態類型轉換,運行時類型安全檢查(轉換失敗返回NULL):
1. 安全的基類和子類之間轉換。
2. 必須要有虛函數。
3. 相同基類不同子類之間的交叉轉換。但結果是NULL。

 1 class BaseClass {
2 public:
3 int m_iNum;
4 virtual void foo(){}; //基類必須有虛函數。保持多臺特性才能使用dynamic_cast
5 };
6
7 class DerivedClass: public BaseClass {
8 public:
9 char *m_szName[100];
10 void bar(){};
11 };
12
13 BaseClass* pb = new DerivedClass();
14 DerivedClass *pd1 = static_cast<DerivedClass *>(pb); //子類->父類,靜態類型轉換,正確但不推薦
15 DerivedClass *pd2 = dynamic_cast<DerivedClass *>(pb); //子類->父類,動態類型轉換,正確
16
17 BaseClass* pb2 = new BaseClass();
18 DerivedClass *pd21 = static_cast<DerivedClass *>(pb2); //父類->子類,靜態類型轉換,危險!訪問子類m_szName成員越界
19 DerivedClass *pd22 = dynamic_cast<DerivedClass *>(pb2); //父類->子類,動態類型轉換,安全的。結果是NULL

reinterpreter_cast
僅僅重新解釋類型,但沒有進行二進制的轉換:
1. 轉換的類型必須是一個指針、引用、算術類型、函數指針或者成員指針。
2. 在比特位級別上進行轉換。它可以把一個指針轉換成一個整數,也可以把一個整數轉換成一個指針(先把一個指針轉換成一個整數,在把該整數轉換成原類型的指針,還可以得到原先的指針值)。但不能將非32bit的實例轉成指針。
3. 最普通的用途就是在函數指針類型之間進行轉換。
4. 很難保證移植性。

1 int doSomething(){return 0;};
2 typedef void(*FuncPtr)(); //FuncPtr is 一個指向函數的指針,該函數沒有參數,返回值類型為 void
3 FuncPtr funcPtrArray[10]; //10個FuncPtrs指針的數組 讓我們假設你希望(因為某些莫名其妙的原因)把一個指向下面函數的指針存入funcPtrArray數組:
4
5 funcPtrArray[0] = &doSomething;// 編譯錯誤!類型不匹配,reinterpret_cast可以讓編譯器以你的方法去看待它們:funcPtrArray
6 funcPtrArray[0] = reinterpret_cast<FuncPtr>(&doSomething); //不同函數指針類型之間進行轉換

總結
去const屬性用const_cast。
基本類型轉換用static_cast。
多態類之間的類型轉換用daynamic_cast。
不同類型的指針類型轉換用reinterpreter_cast。

Logo
作者:Gezidan
出處:http://www.rixu.net    
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
posted on 2011-08-03 13:57 日需博客 閱讀(261) 評論(0)  編輯 收藏 引用 所屬分類: C C++技術文章轉載
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            中国日韩欧美久久久久久久久| 久久久久久91香蕉国产| 欧美日韩国产999| 欧美伊人久久久久久久久影院 | 精品成人一区| 国产日韩视频| 国产在线精品一区二区中文| 国产精品视频大全| 国产精品毛片在线看| 国产精品天天看| 国产一区二区中文字幕免费看| 国产午夜精品久久久久久免费视| 国产精品午夜电影| 国产欧美精品一区二区色综合| 欧美成人免费视频| 免费不卡在线视频| 亚洲欧洲在线免费| 亚洲美女在线国产| 午夜久久tv| 欧美日韩福利| 国语自产在线不卡| 亚洲新中文字幕| 欧美亚洲免费在线| 欧美.com| 篠田优中文在线播放第一区| 欧美成人精精品一区二区频| 国产精品手机视频| 夜夜嗨av一区二区三区四季av | 亚洲欧洲另类国产综合| 亚洲视频二区| 91久久午夜| 老色批av在线精品| 国产欧美日韩免费看aⅴ视频| 最近看过的日韩成人| 久久精品在线播放| 亚洲综合二区| 国产精品福利网| 91久久精品网| 欧美顶级大胆免费视频| 国产日韩av高清| 欧美呦呦网站| 欧美亚洲免费电影| 国产欧美精品在线| 欧美专区中文字幕| 欧美一级电影久久| 欧美在线一级va免费观看| 欧美激情一区二区三区蜜桃视频 | 亚洲欧美成人一区二区在线电影| 欧美国产第二页| 在线激情影院一区| 亚洲激情六月丁香| 国产精品美女久久| 久久久蜜臀国产一区二区| 欧美在线二区| 91久久夜色精品国产九色| 亚洲黄色av| 亚洲欧美激情视频在线观看一区二区三区 | 久久久久久亚洲精品不卡4k岛国| 国产视频亚洲精品| 欧美大片免费观看| 国产精品户外野外| 免费欧美日韩| 国产精品视频第一区| 欧美不卡视频一区发布| 欧美三级黄美女| 亚洲精品一区中文| 亚洲午夜女主播在线直播| 国产综合色精品一区二区三区| 欧美激情一区| 国产综合色精品一区二区三区| 亚洲免费观看| 亚洲精品1区| 久久精品亚洲乱码伦伦中文| 亚洲欧美日韩国产综合精品二区| 久久婷婷综合激情| 欧美一区二区三区四区在线观看| 在线观看日韩一区| 午夜久久tv| 久久精品视频亚洲| 午夜精品久久久久久久白皮肤 | 日韩午夜电影| 欧美一区二区三区四区在线观看地址 | 久久精品一区蜜桃臀影院| 欧美专区18| 国产精品日韩精品欧美精品| 夜夜嗨av一区二区三区四季av| 日韩一级精品视频在线观看| 欧美国产欧美综合| 99国产精品视频免费观看一公开| 亚洲人成啪啪网站| 欧美日本免费| 亚洲自拍偷拍麻豆| 久久综合久久美利坚合众国| 亚洲国产欧美一区二区三区丁香婷| 久久精品系列| 亚洲精品中文字幕有码专区| 亚洲香蕉网站| 国产伦精品一区二区三区| 欧美一区二区网站| 亚洲国产精品99久久久久久久久| 一本到高清视频免费精品| 国产精品电影在线观看| 久久综合给合久久狠狠色 | 久久精品亚洲热| 最新成人av网站| 欧美一级久久久久久久大片| 欧美日韩精品欧美日韩精品一| 久久久精品国产免费观看同学 | 亚洲久久一区| 久久久99精品免费观看不卡| 亚洲一区国产| 亚洲免费观看高清完整版在线观看熊 | 亚洲欧美在线另类| 一区二区三区回区在观看免费视频| 欧美sm视频| 欧美激情精品久久久久久| 欧美国产视频一区二区| 开元免费观看欧美电视剧网站| 久久国产综合精品| 免费观看久久久4p| 一区二区欧美日韩| 久久综合久久综合久久| 国产一区二区三区日韩| 日韩视频在线免费观看| 在线观看成人网| 久久久久久色| 亚洲国产日韩欧美在线动漫| 国产精品自拍视频| 亚洲伊人观看| 亚洲观看高清完整版在线观看| 亚洲国产精品久久久| 欧美啪啪一区| 国产精品丝袜xxxxxxx| 欧美电影美腿模特1979在线看| 在线欧美不卡| 免费久久久一本精品久久区| 欧美激情一区二区三区四区 | 欧美精品国产| 久久综合成人精品亚洲另类欧美| 久久一区二区三区国产精品| 一区二区日韩伦理片| 牛牛国产精品| 亚洲国产欧美国产综合一区| 亚洲黄色高清| 亚洲在线播放| 亚洲在线视频| 亚洲视频免费在线| 久久免费黄色| 国产精品国产自产拍高清av| 亚洲影视在线播放| 久久aⅴ国产紧身牛仔裤| 先锋影院在线亚洲| 亚洲三级免费观看| 久久精品国产v日韩v亚洲| 媚黑女一区二区| 99ri日韩精品视频| 香蕉久久国产| 欧美电影免费观看| 亚洲午夜在线观看视频在线| 国产精品一区免费在线观看| 亚洲精品一区二区三区樱花| 久久久最新网址| 久久超碰97人人做人人爱| 国产精品国产| 亚洲国产三级| 午夜视黄欧洲亚洲| 亚洲人成亚洲人成在线观看图片| 久久一区二区三区国产精品| 韩曰欧美视频免费观看| 小辣椒精品导航| 亚洲美女在线视频| 欧美日韩国产一区二区三区地区| 欧美国产激情| 国产欧美日韩精品专区| 中日韩午夜理伦电影免费| 久久久人成影片一区二区三区| 一区二区三区高清在线| 欧美日韩一二三四五区| 久久九九国产精品怡红院| 欧美精品www在线观看| 在线激情影院一区| 欧美激情免费观看| 国产精品久久国产三级国电话系列| 日韩午夜激情| 亚洲国产精品成人综合色在线婷婷 | 亚洲无人区一区| 久久青青草综合| 一区二区亚洲| 一区二区欧美在线| 日韩一二三区视频| 欧美一级二级三级蜜桃| 亚洲精品视频一区| 亚洲精品123区| 国产亚洲高清视频| 一区二区三区免费观看| 国内外成人免费视频 | 欧美另类一区二区三区| 久久女同互慰一区二区三区| 国产欧美日韩精品丝袜高跟鞋 | 欧美成人免费视频|