九九热这里直有精品,1区二区三区在线播放,玖玖爱在线观看资源,国产aⅴ综合网,午夜福利男女,日本亚洲欧美三级,日韩无码黄色导航,内射少妇13区,中文字幕高清网

您身邊的軟件定制專家--9年開發(fā)經(jīng)驗為您護航

18678812288
0531-88887250

C++ 在繼承中虛函數(shù)、純虛函數(shù)、普通函數(shù),三者的區(qū)別

文章作者:濟南軟件開發(fā) 時間:2016年12月20日

1.虛函數(shù)(impure virtual)

 

  C++的虛函數(shù)主要作用是“運行時多態(tài)”,父類中提供虛函數(shù)的實現(xiàn),為子類提供默認的函數(shù)實現(xiàn)。

 

  子類可以重寫父類的虛函數(shù)實現(xiàn)子類的特殊化。

 

  如下就是一個父類中的虛函數(shù):

 

復制代碼

class A

{

public:

    virtual void out2(string s)

    {

        cout<<"A(out2):"<<s<<endl;

    }

};

復制代碼

2.純虛函數(shù)(pure virtual)

 

  C++中包含純虛函數(shù)的類,被稱為是“抽象類”。抽象類不能使用new出對象,只有實現(xiàn)了這個純虛函數(shù)的子類才能new出對象。

 

  C++中的純虛函數(shù)更像是“只提供申明,沒有實現(xiàn)”,是對子類的約束,是“接口繼承”。

 

  C++中的純虛函數(shù)也是一種“運行時多態(tài)”。

 

  如下面的類包含純虛函數(shù),就是“抽象類”:

 

復制代碼

class A

{

public:

    virtual void out1(string s)=0;

    virtual void out2(string s)

    {

        cout<<"A(out2):"<<s<<endl;

    }

};

復制代碼

3.普通函數(shù)(no-virtual)

 

  普通函數(shù)是靜態(tài)編譯的,沒有運行時多態(tài),只會根據(jù)指針或引用的“字面值”類對象,調(diào)用自己的普通函數(shù)。

 

  普通函數(shù)是父類為子類提供的“強制實現(xiàn)”。

 

  因此,在繼承關系中,子類不應該重寫父類的普通函數(shù),因為函數(shù)的調(diào)用至于類對象的字面值有關。

 

4.程序綜合實例

 

復制代碼

#include <iostream>

using namespace std;

 

class A

{

public:

    virtual void out1()=0;  ///由子類實現(xiàn)

    virtual ~A(){};

    virtual void out2() ///默認實現(xiàn)

    {

        cout<<"A(out2)"<<endl;

    }

    void out3() ///強制實現(xiàn)

    {

        cout<<"A(out3)"<<endl;

    }

};

 

class B:public A

{

public:

    virtual ~B(){};

    void out1()

    {

        cout<<"B(out1)"<<endl;

    }

    void out2()

    {

        cout<<"B(out2)"<<endl;

    }

    void out3()

    {

        cout<<"B(out3)"<<endl;

    }

};

 

int main()

{

    A *ab=new B;

    ab->out1();

    ab->out2();

    ab->out3();

    cout<<"************************"<<endl;

    B *bb=new B;

    bb->out1();

    bb->out2();

    bb->out3();

 

    delete ab;

    delete bb;

    return 0;

}

復制代碼


想要了解更多詳情歡迎來電咨詢18678812288
登陸網(wǎng)址:m.h6244.cn。
聯(lián)系人:王經(jīng)理。

宿州市| 柳林县| 西平县| 开江县| 北安市| 如东县| 长武县| 松滋市| 安泽县| 越西县| 上饶县| 旅游| 新建县| 天峻县| 谷城县| 甘孜县| 靖边县| 图木舒克市| 通海县| 武城县| 临安市| 临沧市| 阳江市| 区。| 义马市| 樟树市| 景泰县| 朝阳区| 玉田县| 芮城县| 德保县| 襄垣县| 沂水县| 连山| 海淀区| 元朗区| 北海市| 邵东县| 临邑县| 合阳县| 扶绥县|