最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c++ dynamic_cast與static_cast使用方法示例

 更新時(shí)間:2013年11月15日 14:55:24   作者:  
本文用示例講解了dynamic_cast、static_cast子類與基類之間轉(zhuǎn)換功能的使用方法

首先dynamic_cast:

復(fù)制代碼 代碼如下:

#include <iostream>
using namespace std;
class A{
    public:
        virtual ~A(){} //使用dynamic_cast時(shí),必要!
};
class B:public A{
    public:
        B(){
            m_b=12;
        }
        void foo(){
            cout<<"B: "<<m_b<<endl;
        }
    private:
        int m_b;
};
int main()
{   
    A *a=new B();
    B *b=dynamic_cast<B*>(a);
    b->foo();
    delete a;
    return 0;
}

上面沒有virtual ~A(){},編譯時(shí)會(huì)報(bào)錯(cuò):(source type is not polymorphic)。

static_cast:

復(fù)制代碼 代碼如下:

#include <iostream>
using namespace std;
class A{
    public:
        A():m_a(32){}
        void foo(){
            cout<<"A: "<<m_a<<endl;
        }
        void setA(int a){
            m_a=a;
        }
    private:
        int m_a;
};
class B:public A{
    public:
        B(){
            m_b=12;
            setA(13);
        }
        void foo(){
            cout<<"B: "<<m_b<<endl;
        }
    private:
        int m_b;
};
int main()
{   
    A *a=new B();
    B *b=static_cast<B*>(a);
    A *aa=static_cast<A*>(b);
    b->foo();
    aa->foo();
    delete a;
    return 0;
}

打印a、b、aa地址,可知地址一樣。

相關(guān)文章

  • 深入解析C++11?lambda表達(dá)式/包裝器/線程庫

    深入解析C++11?lambda表達(dá)式/包裝器/線程庫

    這篇文章主要介紹了C++11?lambda表達(dá)式/包裝器/線程庫的相關(guān)知識(shí),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C++樹之遍歷二叉樹實(shí)例詳解

    C++樹之遍歷二叉樹實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于C++樹之遍歷二叉樹的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C語言實(shí)現(xiàn)簡(jiǎn)單航班管理系統(tǒng)

    C語言實(shí)現(xiàn)簡(jiǎn)單航班管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡(jiǎn)單航班管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 基于Qt和Opencv實(shí)現(xiàn)二維碼解析

    基于Qt和Opencv實(shí)現(xiàn)二維碼解析

    這篇文章主要為大家詳細(xì)介紹了如何利用?Qt?和?OpenCV?實(shí)現(xiàn)一個(gè)可從視頻和圖片中檢測(cè)二維碼的軟件,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • C++11/14 線程調(diào)用類對(duì)象和線程傳參的方法

    C++11/14 線程調(diào)用類對(duì)象和線程傳參的方法

    這篇文章主要介紹了C++11/14 線程調(diào)用類對(duì)象和線程傳參的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • C語言調(diào)用go生成的動(dòng)態(tài)庫的踩坑過程解析

    C語言調(diào)用go生成的動(dòng)態(tài)庫的踩坑過程解析

    這篇文章主要為大家介紹了C語言調(diào)用go生成的動(dòng)態(tài)庫的踩坑過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • C/C++實(shí)現(xiàn)獲取硬盤序列號(hào)的示例代碼

    C/C++實(shí)現(xiàn)獲取硬盤序列號(hào)的示例代碼

    獲取硬盤的序列號(hào)、型號(hào)和固件版本號(hào),此類功能通常用于做硬盤綁定或硬件驗(yàn)證操作,下面我們就來學(xué)習(xí)一下如何使用C/C++實(shí)現(xiàn)獲取硬盤序列號(hào)吧
    2023-11-11
  • VSCode保存代碼自動(dòng)格式化無效的解決方法

    VSCode保存代碼自動(dòng)格式化無效的解決方法

    最近一直使用vscode,VSCode中各種配置后,自動(dòng)保存格式化仍然無效,本文就來介紹一下解決方法,感興趣的可以了解一下
    2023-08-08
  • 基于Matlab實(shí)現(xiàn)離散系統(tǒng)分岔圖的繪制

    基于Matlab實(shí)現(xiàn)離散系統(tǒng)分岔圖的繪制

    這篇文章主要介紹了如何利用Matlab實(shí)現(xiàn)離散分岔圖的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Matlab有一定的幫助,需要的可以參考一下
    2022-04-04
  • C語言快速排序與二分查找算法示例

    C語言快速排序與二分查找算法示例

    這篇文章主要介紹了C語言快速排序與二分查找算法,涉及C語言隨機(jī)數(shù)生成、快速排序及二分查找等算法相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01

最新評(píng)論

江城| 阿勒泰市| 泾川县| 涪陵区| 景德镇市| 松江区| 旅游| 晋中市| 成安县| 兴仁县| 历史| 扎鲁特旗| 黔西县| 库尔勒市| 泸州市| 旬邑县| 青河县| 临洮县| 珠海市| 三门峡市| 盖州市| 黄平县| 古田县| 黔西| 雷山县| 铁力市| 浪卡子县| 客服| 萨嘎县| 新昌县| 灵武市| 河南省| 鹿泉市| 连平县| 专栏| 平潭县| 屏东县| 万全县| 望江县| 株洲县| 日喀则市|