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

隨筆 - 30, 文章 - 0, 評論 - 64, 引用 - 0
數據加載中……

類型轉換高級 (Advacned Class Type-casting)

reinterpret_cast

reinterpret_cast 可以將一個指針轉換為任意其它類型的指針
它也可以用來將一個指針轉換為一個整型,或反之亦然。

這個操作符可以在互不相關的類之間進行指針轉換,
操作的結果是簡單的將一個指針的二進制數據(binary copy)復制到另一個指針。
對指針指向的內容不做任何檢查或轉換。

例如:

class A {};
class B {};
A * a = new A;
B * b = reinterpret_cast<B*>(a);

reinterpret_cast 對所有指針的處理與傳統的類型轉換符所作的一模一樣。

_________________________________________________________________

static_cast

static_cast 可以執行所有能夠隱含執行的類型轉換,以及它們的反向操作(即使這種方向操作是不允許隱含執行的)。

用于類的指針,也就是說,它允許將一個引申類的指針轉換為其基類類型(這是可以被隱含執行的有效轉換),同時也允許進行相反的轉換:將一個基類轉換為一個引申類類型。

在后面一種情況中,不會檢查被轉換的基類是否真正完全是目標類型的。例如下面的代碼是合法的:

class Base {};
class Derived: public Base {};
Base * a = new Base;
Derived * b = static_cast(a);

static_cast除了能夠對類指針進行操作,還可以被用來進行類中明確定義的轉換,以及對基本類型的標準轉換:

double d=3.14159265;
int i = static_cast<int>(d);

譯者注:如果你對這部分看不太懂,請結合下面的dynamic_cast一起看,也許會幫助理解。











dynamic_cast

dynamic_cast 完全被用來進行指針的操作。它可以用來進行任何可以隱含進行的轉換操作以及它們被用于多態類情況下的方向操作。

然而與static_cast不同的是,
 dynamic_cast 會檢查后一種情況的操作是否合法,
也就是說它會檢查類型轉換操作是否會返回一個被要求類型的有效的完整的對象。

這種檢查是在程序運行過程中進行的。如果被轉換的指針所指向的對象不是一個被要求類型的有效完整的對象,返回值將會是一個空指針NULL 。

   class Base { virtual dummy(){}; };
class Derived : public Base { };


Base* b1 = new Derived;
Base* b2 = new Base;
Derived* d1 = dynamic_cast(b1); // succeeds Derived* d2 = dynamic_cast(b2); // fails: returns NULL

如果類型轉換被用在引用(reference)類型上,而這個轉換不可能進行的話,一個bad_cast 類型的例外(exception)將會被拋出:

  class Base { virtual dummy(){}; };
class Derived : public Base { };

Base* b1 = new Derived;
Base* b2 = new Base;
Derived d1 = dynamic_cast(b1); // succeeds Derived d2 = dynamic_cast(b2); // fails: exception thrown








const_cast

這種類型轉換對常量const 進行設置或取消操作:

class C {};
const C * a = new C;
C * b = const_cast<C*> (a);

其他3種cast 操作符都不可以修改一個對象的常量屬性(constness)。




typeid

ANSI-C++ 還定義了一個新的操作符叫做 typeid ,
它檢查一個表達式的類型:

typeid (expression)

這個操作符返回一個類型為type_info的常量對象指針,這種類型定義在標準頭函數中。這種返回值可以用操作符 == 和 != 來互相進行比較,
也可以用來通過name()函數獲得一個描述數據類型或類名稱的字符串,

例如:

    // typeid, typeinfo
            #include <iostream.h>
            #include <typeinfo>
            class CDummy { };
            int main () {
            CDummy* a,b;
            if (typeid(a) != typeid(b)) {
            cout << "a and b are of different types:\n";
            cout << "a is: " << typeid(a).name() << '\n';
            cout << "b is: " << typeid(b).name() << '\n';
            }
            return 0;
            }
            
a and b are of different types:
a is: class CDummy *
b is: class CDummy


posted on 2008-12-08 12:58 henry08 閱讀(498) 評論(0)  編輯 收藏 引用 所屬分類: 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>
            久久精品99国产精品日本| 亚洲国产1区| 久久在线免费| 亚洲欧美在线播放| 亚洲视频专区在线| 亚洲女同精品视频| 久久精品三级| 欧美二区不卡| 国产精品久久久久9999| 国产麻豆91精品| 尤物yw午夜国产精品视频明星| 一色屋精品亚洲香蕉网站| 亚洲国内欧美| 欧美亚洲三区| 欧美国产国产综合| 99国产精品久久久久久久久久| 亚洲视频一区二区免费在线观看| 亚洲欧美日韩一区二区三区在线| 久久精品国产91精品亚洲| 欧美国产视频在线观看| 国产精自产拍久久久久久| 亚洲国产精品一区| 午夜亚洲福利在线老司机| 欧美大片在线观看一区二区| 亚洲视频一区| 老司机免费视频久久| 国产精品magnet| 亚洲大黄网站| 欧美一级电影久久| 亚洲电影免费观看高清完整版在线 | 久久都是精品| 亚洲国产美女精品久久久久∴| 一区二区高清视频| 久久综合电影一区| 国产精品日本精品| 99精品欧美| 裸体素人女欧美日韩| 亚洲一区二区3| 欧美日韩成人激情| 亚洲人成77777在线观看网| 久久精品五月婷婷| 亚洲私人黄色宅男| 欧美日韩日日夜夜| 亚洲精品日日夜夜| 免费影视亚洲| 欧美在线视频网站| 国产美女精品免费电影| 在线亚洲美日韩| 91久久精品久久国产性色也91| 欧美尤物一区| 国产亚洲欧美一区| 欧美一区二区视频在线观看2020| 日韩午夜精品| 欧美日本亚洲视频| 日韩亚洲不卡在线| 亚洲成人资源网| 美女成人午夜| 亚洲韩日在线| 欧美高清视频www夜色资源网| 欧美诱惑福利视频| 国产精品自在在线| 久久激情视频久久| 久久99伊人| 狠久久av成人天堂| 久久综合999| 欧美一区二区精品久久911| 国产欧美一区二区精品秋霞影院| 午夜精品免费| 欧美一区高清| 在线观看亚洲专区| 亚洲国产精品va在看黑人| 美腿丝袜亚洲色图| 99精品热视频| 亚洲午夜久久久久久尤物 | 久久精品国产91精品亚洲| 国产欧美日韩亚洲一区二区三区| 欧美在线视频观看免费网站| 午夜激情综合网| 亚洲女爱视频在线| 欧美日韩一区二区三区视频| 欧美午夜三级| 亚洲免费不卡| 亚洲欧美电影院| 欧美成人69av| 欧美一区二区三区免费大片| 亚洲国产精彩中文乱码av在线播放| 欧美一级欧美一级在线播放| 亚洲欧美日本国产专区一区| 国产亚洲精品久久飘花| 99综合电影在线视频| 欧美国产91| 久久精品一二三| 欧美日韩在线电影| 亚洲一区二区精品| 一区二区三区成人| 欧美激情精品久久久久久黑人 | 一区二区三区|亚洲午夜| 亚洲精品国产视频| 国产欧美一区二区精品秋霞影院| 午夜精品久久久久久久久久久久久 | 亚洲免费视频网站| 亚洲成人中文| 一本久久青青| 欧美激情精品久久久六区热门 | 香蕉免费一区二区三区在线观看| 91久久精品www人人做人人爽| 亚洲精品1区| 亚洲电影自拍| 91久久在线视频| 午夜精品在线看| 亚洲国内在线| 老司机午夜精品视频在线观看| 在线观看日产精品| 久久性色av| 亚洲激情国产精品| 欧美三区美女| 媚黑女一区二区| 国产自产v一区二区三区c| 久久综合中文| 欧美日韩另类综合| 亚洲精品美女在线| 亚洲成色777777在线观看影院| 久久综合五月| 欧美少妇一区| 亚洲图片在线| 一卡二卡3卡四卡高清精品视频 | 亚洲国产一区二区在线| 最新国产成人在线观看| 国产日本欧美一区二区三区| 欧美14一18处毛片| 国产精品萝li| 女女同性精品视频| 欧美不卡视频一区发布| 国产精品嫩草99av在线| 99精品视频免费全部在线| 国产一区再线| 日韩视频免费观看| 亚洲一区二区欧美日韩| 亚洲第一主播视频| 国产精品久久一区二区三区| 午夜精品福利在线| 老司机成人网| 国产欧美日韩精品一区| 欧美人交a欧美精品| 亚洲国产经典视频| 亚洲成人中文| 亚洲黄一区二区三区| 农夫在线精品视频免费观看| 久久精品一区二区三区不卡牛牛| 欧美黄色片免费观看| 久久成人在线| 久久久久久自在自线| 国产精品视频免费在线观看| 国产精品三级视频| 久久青青草原一区二区| 亚洲在线电影| 亚洲成色999久久网站| 亚洲一二三区精品| 亚洲黄色在线观看| 国产精品免费区二区三区观看| 欧美一区二区三区在线播放| 另类尿喷潮videofree| 欧美激情中文字幕在线| 亚洲成色999久久网站| 欧美国产免费| 久久精品日韩欧美| 宅男精品视频| 欧美一区二区黄色| av成人激情| 亚洲一区二区三区成人在线视频精品| 在线观看国产精品网站| 亚洲区国产区| 亚洲靠逼com| 亚洲国产成人tv| 日韩一级黄色大片| 亚洲主播在线观看| 久久激情视频免费观看| 亚洲精品在线免费| 欧美激情一区二区三区成人| 久久久久久久久岛国免费| 欧美激情四色| 欧美激情综合色| 99国产精品久久久久久久成人热| 亚洲国产精品va在线看黑人 | 欧美激情综合五月色丁香| 美女成人午夜| 黄色成人在线观看| 亚洲国产天堂久久综合| 亚洲在线1234| 男女激情久久| 久久国产精品久久久久久| 免费在线观看日韩欧美| 国产欧美精品日韩精品| 1024欧美极品| 久久久久久穴| 欧美一级大片在线观看| 欧美日韩综合一区| 亚洲视频精品在线| 亚洲一区久久久| 国产精品久久久久久久午夜|