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

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

 更新時(shí)間:2013年11月15日 14:55:24   作者:  
本文用示例講解了dynamic_cast、static_cast子類(lèi)與基類(lèi)之間轉(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;
}

上面沒(méi)有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)文章

最新評(píng)論

绥德县| 泽普县| 伊通| 昌宁县| 来凤县| 阿坝| 鱼台县| 麦盖提县| 翁牛特旗| 巨鹿县| 浮山县| 华容县| 云龙县| 衡东县| 绥芬河市| 汉寿县| 盘山县| 蒙自县| 丰城市| 大庆市| 策勒县| 汶川县| 吕梁市| 昌邑市| 吉隆县| 奉新县| 兴文县| 城步| 永定县| 綦江县| 淮安市| 黄陵县| 金坛市| 井冈山市| 东宁县| 西和县| 玛纳斯县| 两当县| 谢通门县| 临沧市| 高淳县|