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

c++ RTTI (1)

Posted on 2010-01-03 17:59 rikisand 閱讀(451) 評論(0)  編輯 收藏 引用 所屬分類: 工作記錄~~everydayC/C++

項目中遇到了 RTTI 先學一部分 c++ primer內容

  1. 運行時類型識別:

程序可以使用基類的指針或者引用來檢索這些指針或引用所指對象的實際派生類型

標準庫提供了兩個操作符:

1. typeid    他可以返回指針或者引用所指向對象的實際類型

2. dynamic_cast  將基類類型的指針或引用安全的轉為派生類的指針或者引用                            

對于不帶虛函數的類在編譯時期執行,否則在運行期間執行

使用時機:

基類指針調用派生類成員函數的話,一般應使用虛函數,這樣編譯器會根據對象的實際類型來選擇正確的函數。但是某些情況下無法使用虛函數,那么此

時如果需要使用基類指針調用派生類成員函數便需要使用RTTI強制轉換,而且必須檢查轉換是否成功

(一) Dynamic_cast

dynamic_cast 如果轉換到指針失敗則返回 0 如果轉換到引用類型失敗則拋出 bad_cast 異常

對指針操作:

if(Derived *derivedPtr = dynamic_cast<Derived*> (basePtr)){

    //basePtr point to a derived object;

}else{

   //basePtr point to a base object;

}

在 if 語句中進行檢查 1.條件代碼內部知道 derivedPtr 的類型 2.不可能在測試代碼和使用代碼中加入代碼,也就是說不會在沒有測試前就使用derivedPtr 3.如果失敗外部不會使用未綁定的指針derivedPtr

對引用操作:

因為不存在空引用所以轉換失敗拋出異常

void f(const Base& b){

    try{

        const Derived &d = dynamic_cast<const Derived&> (b);

    }catch(bad_cast){

    }

}

(二) typeid

typeid(e) e是任意的表達式或者類型名

Base *bp;

Derived *dp;

//compare type at run time of two objects

if(typeid(*bp)==typeid(*dp)){

    //bp dp point to objects of the same type

}

if(typeid(*bp)==typeid(Derived)){

    //bp actually point to a Derived

}

注意typeid 測試的是 *bp 對象

//test always fails: The type of bp if pointer to Base

if(typeid(bp)==typeid(Derived)){

}

Base* 將永遠和Derived類型不同

只有typeid 的操作數是帶虛函數的類的對象的時候,才返回動態類型信息,測試指針返回指針的靜態的,編譯時類型

(三 )type_info 類

作為typeid的返回值 提供

t1==t2 t1!=t2 t.name() 的操作

 

作為應用例子,可以實現一個類型敏感的相等操作符

friend bool operator == (const base& lhs, const base& rhs){

    return typeid(lhs)==typeid(rhs) && lhs.equal(rhs);

}

這樣可以處理基類子類混合的相等判斷了

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            免费成人高清| 伊人久久亚洲影院| 亚洲免费视频在线观看| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲一区二区三区午夜| 亚洲免费视频网站| 久久精品国产2020观看福利| 久久久久久久尹人综合网亚洲| 久久全球大尺度高清视频| 欧美sm视频| 国产精品久久久久久久午夜片| 国产区在线观看成人精品| 极品日韩久久| 亚洲视频网在线直播| 久久精品视频播放| 亚洲国产成人精品久久| 亚洲国产精品高清久久久| 一区二区三区四区五区精品| 欧美一区二区免费视频| 欧美激情一区二区三区在线视频 | 亚洲人成77777在线观看网| 亚洲午夜精品一区二区三区他趣| 欧美在线一二三区| 欧美日韩国语| 韩日视频一区| 亚洲一区二三| 亚洲国产精品成人久久综合一区| 一区二区三区视频在线看| 久久在精品线影院精品国产| 国产精品麻豆va在线播放| 亚洲国产黄色片| 欧美一区二区三区在线观看| 噜噜噜躁狠狠躁狠狠精品视频 | 欧美国产亚洲精品久久久8v| 亚洲尤物精选| 欧美日韩亚洲国产精品| 亚洲五月婷婷| 欧美激情一区二区三区高清视频| 国产日韩欧美精品在线| 欧美精品在线观看一区二区| 国产综合色产在线精品| 亚洲精品中文字幕女同| 亚洲视频一区| 亚洲国产精品传媒在线观看| 亚洲综合精品一区二区| 欧美一区综合| 亚洲国产精品第一区二区三区| 久久精品国产免费| 亚洲人成人一区二区三区| 久久免费视频在线观看| 国产亚洲综合性久久久影院| 亚洲视频成人| 日韩午夜av| 欧美日韩一级视频| 宅男66日本亚洲欧美视频| 亚洲激情在线观看| 欧美片在线观看| 99视频精品全国免费| 亚洲黑丝在线| 欧美日韩国产123| 一区二区欧美在线| 99国产精品| 国产精品草莓在线免费观看| 亚洲视频精选在线| 亚洲一区免费| 韩国欧美一区| 久久综合成人精品亚洲另类欧美| 欧美在线视频网站| 一区二区三区在线免费播放| 蜜桃av噜噜一区| 欧美成人a∨高清免费观看| 91久久久久久久久久久久久| 亚洲黄色三级| 国产精品久久一区二区三区| 欧美中文字幕在线观看| 欧美一级在线播放| 在线观看久久av| 亚洲黄一区二区| 国产精品视频| 久久综合国产精品| 欧美美女bbbb| 欧美怡红院视频一区二区三区| 欧美专区在线播放| 亚洲日本成人| 在线亚洲伦理| 在线观看日产精品| 日韩视频国产视频| 国产一区久久久| 91久久香蕉国产日韩欧美9色| 欧美日韩免费观看一区=区三区| 亚洲欧美日韩国产一区| 欧美高清视频在线观看| 亚洲人成人99网站| 亚洲人成网站999久久久综合| 在线欧美日韩| 国产亚洲人成a一在线v站| 美女主播一区| 欧美日韩性生活视频| 欧美在线观看视频一区二区三区| 久久久久久一区二区| 一区二区三区毛片| 欧美在线啊v| 亚洲一品av免费观看| 久久久久成人精品| 亚洲一区日韩在线| 免费人成网站在线观看欧美高清 | 久久久久久久久伊人| 日韩一级在线| 久久国产精品第一页| 亚洲无毛电影| 欧美成人一区二区三区在线观看| 午夜精品短视频| 欧美高清在线一区二区| 久久久久免费| 国产精品第一页第二页第三页| 久久久亚洲高清| 欧美日韩国产美女| 亚洲国产成人porn| 亚洲第一福利视频| 欧美一区网站| 欧美一区二区三区四区夜夜大片| 欧美精品亚洲| 欧美激情亚洲视频| 在线观看中文字幕不卡| 亚洲欧洲av一区二区| 中文精品视频一区二区在线观看| 久久一二三四| 麻豆国产精品一区二区三区| 国产日韩成人精品| 亚洲欧美制服另类日韩| 亚洲欧美高清| 欧美成人亚洲成人| 亚洲性图久久| 国产欧美日韩不卡免费| 久久久夜夜夜| 狠狠久久亚洲欧美专区| 小黄鸭精品密入口导航| 欧美一区二区高清| 国产精品一区二区三区四区五区| 夜夜精品视频| 亚洲女优在线| 国产欧美日韩另类一区| 午夜免费电影一区在线观看| 欧美一区二区在线看| 国产午夜精品全部视频在线播放| 亚洲欧美日韩区| 久久婷婷国产综合国色天香| 国产一区视频网站| 麻豆精品传媒视频| 亚洲日本一区二区| 亚洲永久网站| 国产精品久久久免费| 久久久久国产精品厨房| 一区二区三区**美女毛片| 亚洲视频一区| 久久久亚洲影院你懂的| 久久另类ts人妖一区二区| 午夜亚洲激情| 久久一综合视频| 亚洲激情成人| 久久久国产视频91| 欧美电影免费观看网站| 亚洲精品1区2区| 欧美理论在线| 午夜精品久久| 亚洲国产一成人久久精品| 一本一道久久综合狠狠老精东影业 | 欧美成人免费播放| 99精品国产在热久久婷婷| 国产精品毛片大码女人| 久久久国产精品一区二区中文 | 久久久久久香蕉网| 99riav久久精品riav| 久久免费国产精品| 一区二区日韩精品| 黄色成人片子| 国产精品二区影院| 蜜桃av综合| 欧美一区免费视频| 亚洲精品少妇30p| 久久午夜激情| 亚洲永久在线观看| 亚洲精品护士| 精品动漫3d一区二区三区免费| 欧美日韩国产亚洲一区 | 国产亚洲在线观看| 欧美日韩国产区| 久久亚洲精品中文字幕冲田杏梨| 一区二区三区视频在线看| 欧美黄色日本| 久久资源在线| 久久精品国产视频| 亚洲图色在线| 亚洲精品孕妇| 136国产福利精品导航网址| 国产三级欧美三级| 国产精品女主播一区二区三区| 欧美成人xxx| 媚黑女一区二区| 久久综合色婷婷|