国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C++中typeid的用法
typeid是C++的關(guān)鍵字之一,等同于sizeof這類的操作符。typeid操作符的返回結(jié)果是名為type_info的標(biāo)準(zhǔn)庫(kù)類型的對(duì)象的引用。

如果表達(dá)式的類型是類類型且至少包含有一個(gè)虛函數(shù),則typeid操作符返回表達(dá)式的動(dòng)態(tài)類型,需要在運(yùn)行時(shí)計(jì)算;否則,typeid操作符返回表達(dá)式的靜態(tài)類型,在編譯時(shí)就可以計(jì)算。

#define OUTPUT(f)    cout << #f << "\t: " << typeid(f).name() << endl;
class BaseA {};
class DeriveA: public BaseA {};

class BaseB
{
    virtual void f(){}
};
class DeriveB: public BaseB {};

int _tmain(int argc, _TCHAR* argv[])
{
    cout << "-------直接處理類名-------" <<endl;

    OUTPUT(BaseA);
    OUTPUT(DeriveA);
    OUTPUT(BaseB);
    OUTPUT(DeriveB);

    cout << endl << "-------基類不含虛函數(shù)-------" <<endl;

    BaseA baseA;
    DeriveA deriveA;
    OUTPUT(baseA);
    OUTPUT(deriveA);
    
    BaseA* pa;
    pa = &baseA;
    OUTPUT(*pa);
    OUTPUT(pa);
    pa = &deriveA;
    OUTPUT(*pa);
    OUTPUT(pa);

    cout << endl << "-------基類含有虛函數(shù)-------" <<endl;

    BaseB baseB;
    DeriveB deriveB;
    OUTPUT(baseB);
    OUTPUT(deriveB);

    BaseB* pb;
    pb = &baseB;
    OUTPUT(*pb);
    OUTPUT(pb);
    pb = &deriveB;
    OUTPUT(*pb);
    OUTPUT(pb);
}


1.當(dāng)typeid操作符的操作數(shù)是不帶有虛函數(shù)的類類型時(shí),typeid操作符會(huì)指出操作數(shù)的類型,而不是底層對(duì)象的類型。

2.如果typeid操作符的操作數(shù)是至少包含一個(gè)虛擬函數(shù)的類類型時(shí),并且該表達(dá)式是一個(gè)基類的引用,則typeid操作符指出底層對(duì)象的派生類類型。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
各類制作軟件 工具下裁地址
提花衣
C 關(guān)鍵字typeid
c++ RTTI(運(yùn)行時(shí)類型識(shí)別)
C++函數(shù)重定義、重載、重寫
保暖披肩
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服