午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

DYNAMIC

 行者120 2012-10-11

DYNAMIC_DOWNCAST、STATIC_DOWNCAST、CRuntimeClass和IsKindOf


DYNAMIC_DOWNCAST(class, pointer ):如果pointer指針?biāo)赶虻膶?duì)象是class類型的,就返回這個(gè)指針。否則返回NULL

例如 你獲取到一個(gè)指針 XXX *pointer; 你想判斷它是不是指向某個(gè)類 ,例如 A 這個(gè)類

A* p= DYNAMIC_DOWNCAST(A, pointer );

如果pointer是指向A這個(gè)類則返回此指針,否則返回空

 

CRuntimeClass和IsKindOf的關(guān)系

CRuntimeClass在MFC中的作用很重要,因?yàn)镸FC利用它來進(jìn)行類的動(dòng)態(tài)確定,即是通過類變量來判定該變量是否為某一類的實(shí)例。由于指針的類型是可以轉(zhuǎn)換的,所以時(shí)常會(huì)出現(xiàn)從A到B的轉(zhuǎn)換導(dǎo)致錯(cuò)誤。而在MFC的各種書籍中對(duì)CRuntimeClass的介紹是比較少的,在這里總結(jié)它的一些用法。

 

動(dòng)態(tài)確定類

   在MFC中

BOOL CObject::IsKindOf(   

       const CRuntimeClass* pClass  

               const;

利用CRuntimeClass來進(jìn)行判定,如果你生成的類是以CFrameWnd為基礎(chǔ)的,你可以使用該成員函數(shù)來判定。下面舉一個(gè)例子來加深了解。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多