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

c++ RTTI (1)

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

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

  1. 運行時類型識別:

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

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

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

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

對于不帶虛函數(shù)的類在編譯時期執(zhí)行,否則在運行期間執(zhí)行

使用時機:

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

時如果需要使用基類指針調用派生類成員函數(shù)便需要使用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 的操作數(shù)是帶虛函數(shù)的類的對象的時候,才返回動態(tài)類型信息,測試指針返回指針的靜態(tài)的,編譯時類型

(三 )type_info 類

作為typeid的返回值 提供

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

 

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

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>
            精品av久久久久电影| 99re成人精品视频| 国产精品毛片va一区二区三区 | 国产精品成人观看视频免费| 亚洲制服av| 99国产精品久久久久久久久久 | 女女同性女同一区二区三区91| 亚洲在线免费观看| 99国产精品国产精品久久| 激情一区二区三区| 国产在线精品自拍| 国产女主播一区| 国产精品电影网站| 欧美午夜视频| 国产精品久久久久久久午夜| 欧美日韩国产va另类| 免费91麻豆精品国产自产在线观看| 久久久午夜视频| 欧美激情视频在线播放| 国产精品国产自产拍高清av| 国产一区二区精品在线观看| 亚洲国产成人在线视频| 亚洲视频久久| 久久亚裔精品欧美| 国产精品萝li| 久久精品在这里| 欧美jjzz| 国产精品一区二区久久精品| 136国产福利精品导航| 一区二区三区国产| 久久精品二区三区| 亚洲麻豆国产自偷在线| 亚洲欧美色婷婷| 美女精品国产| 国产视频久久| 一区二区三欧美| 另类天堂av| 亚洲永久在线| 欧美精品亚洲一区二区在线播放| 国产精品日韩久久久久| 亚洲一区二区在线播放| 美女精品自拍一二三四| 国产精品永久入口久久久| 亚洲日韩欧美视频一区| 久久成人综合视频| 一本色道久久综合亚洲精品不| 欧美中文在线视频| 国产精品久久久久毛片软件| 亚洲精品黄色| 欧美成va人片在线观看| 午夜精品免费视频| 香蕉成人啪国产精品视频综合网| 欧美成人午夜77777| 国产一区在线观看视频| 亚洲欧洲99久久| 日韩亚洲视频在线| 亚洲国产精品日韩| 欧美在线视频免费| 国产伦理一区| 午夜精品一区二区三区在线视 | 欧美成人精品不卡视频在线观看 | 欧美人牲a欧美精品| 在线电影院国产精品| 欧美一区二区三区视频| 99国产精品视频免费观看| 欧美xart系列高清| 亚洲国产天堂久久综合网| 另类亚洲自拍| 久久久久久久高潮| 一区免费在线| 欧美~级网站不卡| 久久美女艺术照精彩视频福利播放| 国产精品人人爽人人做我的可爱| 亚洲一区二区免费看| 日韩视频一区二区三区在线播放免费观看 | 欧美一区二区私人影院日本| 一区二区国产精品| 国产精品久久久久一区二区三区| 亚洲免费在线视频一区 二区| 99re66热这里只有精品3直播| 欧美三区美女| 欧美在线一级va免费观看| 香蕉免费一区二区三区在线观看| 国产欧美在线观看一区| 久久亚洲精品一区| 久久久久久久一区二区| 亚洲精品123区| 9国产精品视频| 国产日产欧产精品推荐色| 久久亚洲一区二区| 蜜臀久久久99精品久久久久久| 亚洲人成网站777色婷婷| 亚洲国产影院| 国产精品久久久久久久免费软件 | 亚洲第一精品夜夜躁人人爽| 免费不卡在线视频| 免费观看30秒视频久久| 一区二区三区精品| 欧美一区二区三区久久精品茉莉花| 很黄很黄激情成人| 亚洲国产成人精品女人久久久 | 亚洲第一在线综合网站| 亚洲区中文字幕| 国产亚洲激情| 日韩午夜电影在线观看| 国内精品免费午夜毛片| 日韩午夜三级在线| 国模吧视频一区| 99精品视频免费全部在线| 国产在线拍揄自揄视频不卡99| 亚洲国产精品久久久久婷婷884 | 黄色成人片子| 一本久道久久综合狠狠爱| 国一区二区在线观看| 亚洲国产日韩一级| 国产亚洲一级高清| 亚洲美女中文字幕| 亚洲国产经典视频| 欧美一区二区三区在线看| aaa亚洲精品一二三区| 午夜精品在线观看| 夜夜嗨av一区二区三区四季av| 久久精品一区| 欧美精品免费在线| 久久久久久久综合| 国产美女高潮久久白浆| 亚洲国产综合在线| 国产视频一区免费看| 亚洲精品国产欧美| 国产精品久久久久天堂| 亚洲精品视频啊美女在线直播| 国产亚洲欧美在线| 99国产精品| 亚洲国产日韩欧美综合久久| 亚洲尤物影院| 欧美一区三区二区在线观看| 欧美国产日韩亚洲一区| 久久久五月婷婷| 国产精品剧情在线亚洲| 亚洲国产91精品在线观看| 国产精品伦理| 亚洲免费不卡| 亚洲日本中文| 久久亚洲春色中文字幕| 欧美在线视频免费| 狠狠色综合网站久久久久久久| 亚洲小视频在线观看| 欧美精品一区二区蜜臀亚洲 | 亚洲精品国产精品乱码不99| 久久成人免费电影| 午夜一级久久| 欧美日韩精品一区二区| 欧美www视频在线观看| 欧美日韩亚洲一区| 亚洲网站在线| 亚洲欧美日韩综合| 欧美手机在线| 99精品视频免费在线观看| 国产精品99久久久久久久久久久久| 欧美成人69| 亚洲第一区色| 亚洲国产精品va在看黑人| 久久久精品国产免大香伊| 久久先锋影音| 欧美国产国产综合| 亚洲小视频在线| 久久av老司机精品网站导航| 国产精品主播| 久久大综合网| 亚洲精品视频在线播放| 一区二区三区免费观看| 欧美日本三区| 一区二区电影免费在线观看| 亚洲欧美综合网| 亚洲精品日韩久久| 欧美日韩大片一区二区三区| 一本大道久久a久久精二百| 翔田千里一区二区| 国产精品二区二区三区| 欧美一区久久| 亚洲成色999久久网站| 夜夜爽夜夜爽精品视频| 国产精品网红福利| 欧美综合国产精品久久丁香| 免费影视亚洲| 正在播放亚洲一区| 国产自产v一区二区三区c| 欧美成人精品福利| 一区二区三区高清在线| 久久精品一区二区三区不卡牛牛| 一区二区在线看| 欧美日产一区二区三区在线观看 | 国产精品99久久久久久久vr| 久久免费视频网站| 亚洲精品一区在线观看| 欧美三区在线观看| 欧美一区在线视频| 最新国产成人av网站网址麻豆 | 国产精品欧美日韩一区| 久久亚洲综合网|