溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

C++多重繼承中的虛繼承舉例

發(fā)布時(shí)間:2020-07-23 14:41:34 來(lái)源:網(wǎng)絡(luò) 閱讀:391 作者:銀河星君 欄目:編程語(yǔ)言
//多重繼承
#include <iostream>
using namespace std;

class A
{
public:
    int a;
    A(int a=0):a(a)
    {
        cout<<"A基類(lèi)A::A()"<<endl;
    }
    ~A()
    {
        cout<<"A基類(lèi)A::~A()"<<endl;
    }
    void show()
    {
        cout<<"A基類(lèi)A::a="<<a<<endl;
    }
};

class B:virtual public A
{
protected:
    int b;
public:
    B(int a=0,int b=0):A(a),b(b)
    {
        cout<<"B子類(lèi)B:B()"<<endl;
    }
    ~B()
    {
        cout<<"B子類(lèi)B:~B()"<<endl;
    }
    void show()
    {
        cout<<"B子類(lèi)B::b="<<b<<endl;
    }
};

class C:virtual public A
{
protected:
    int c;
public:
    C(int a=0,int c=0):A(a),c(c)
    {
       cout<<"C子類(lèi)C::C()"<<endl;
    }
    ~C()
    {
         cout<<"C子類(lèi)C::~C()"<<endl;
    }
    void show()
    {
        cout<<"C子類(lèi)C::c="<<c<<endl;
    }
};

class D:public B,public C
{
protected:
    int d;
public:
    D(int a=0,int b=0,int c=0,int d=0):d(d),B(a,b),C(a,c)
    {
        cout<<"D孫子類(lèi)D::D()"<<endl;
    }
    ~D()
    {
        cout<<"D孫子類(lèi)D::~D()"<<endl;
    }
    void show()
    {
        cout<<"D孫子類(lèi)D::c="<<d<<endl;
    }
};
void Display(A *p)
{
    p->show();
}
int main(int argc, char *argv[])
{
    A a(1);
    B b(2,3);
    C c(4,5);
    D d(6,7,8,9);

    A *p;
    p=&a;
    p->show();

    p=&b;
    p->show();

    p=&c;
    p->show();

    B *q;
    q=&d;
    q->show();

    return 0;
}

C++多重繼承中的虛繼承舉例

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI