欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

首先dynamic_cast:

復制代碼 代碼如下:

#include <iostream>
using namespace std;
class A{
    public:
        virtual ~A(){} //使用dynamic_cast時,必要!
};
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(){},編譯時會報錯:(source type is not polymorphic)。

static_cast:

復制代碼 代碼如下:

#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地址,可知地址一樣。

相關文章

  • Linux網(wǎng)絡編程之UDP Socket程序示例

    Linux網(wǎng)絡編程之UDP Socket程序示例

    這篇文章主要介紹了Linux網(wǎng)絡編程之UDP Socket程序示例,有助于讀者在實踐中掌握UDP協(xié)議的原理及應用方法,需要的朋友可以參考下
    2014-08-08
  • 詳解C++實現(xiàn)線程安全的單例模式

    詳解C++實現(xiàn)線程安全的單例模式

    這篇文章主要介紹了C++實現(xiàn)線程安全的單例模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • C語言實現(xiàn)可增容動態(tài)通訊錄詳細過程

    C語言實現(xiàn)可增容動態(tài)通訊錄詳細過程

    這篇文章主要為大家介紹了C語言實現(xiàn)簡易通訊錄的完整流程,此通訊錄還可以增容,并且每個環(huán)節(jié)都有完整代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-05-05
  • java實現(xiàn)任意四則運算表達式求值算法

    java實現(xiàn)任意四則運算表達式求值算法

    這篇文章主要介紹了java實現(xiàn)任意四則運算表達式求值算法,實例分析了基于java實現(xiàn)表達式四則運算求值的原理與技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • C++如何調用python并取返回值

    C++如何調用python并取返回值

    這篇文章主要介紹了C++如何調用python并取返回值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • C++基于LINUX的文件操作

    C++基于LINUX的文件操作

    這篇文章主要為大家介紹了C++基于LINUX的文件操作示例知識擴充,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • C++中關于std::queue?中遇到釋放內存錯誤的問題

    C++中關于std::queue?中遇到釋放內存錯誤的問題

    這篇文章主要介紹了std::queue中遇到釋放內存錯誤的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • C語言貪吃蛇經典小游戲

    C語言貪吃蛇經典小游戲

    這篇文章主要為大家詳細介紹了C語言貪吃蛇經典小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語言修煉之路悟徹數(shù)組真妙理?巧用下標破萬敵上篇

    C語言修煉之路悟徹數(shù)組真妙理?巧用下標破萬敵上篇

    在C語言和C++等語言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來指向若干個字符串,使字符串處理更加方便、靈活
    2022-02-02
  • C語言中pthread_exit和pehread_join的使用

    C語言中pthread_exit和pehread_join的使用

    pthread_exit用于強制退出一個線程,pthread_join用于阻塞等待線程退出,獲取線程退出狀態(tài),本文主要介紹了C語言中pthread_exit和pehread_join函數(shù)的使用,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02

最新評論