大挪耗

c++多继承与虚继承

#include "iostream"
using namespace std;

class A1
{//基类1
public:
    int m_a=10;
};


class A2
{//基类2
public:
    int m_a=20;
};

class B1:public A1,public A2
{//派生类
public:
    int m_a=30;
};

class A
{
public:
    int m_a=10;
};

class B:virtual public A{};

class C:virtual public A{};

class D:public B,public C{};

int main()
{
    B1 b;
    cout<<"m_a的值为:"<<b.m_a<<",m_b的值为:"<<b.A1::m_a<< ",m_c的为:"<<b.A2::m_a<<endl;
    //菱形的继承方式要加virtual,两个变量就变成了一个变量.
    D d;
    d.B::m_a=30;
    d.C::m_a=80;
    cout<<"B::m_a的地址是:"<<&d.B::m_a<<",值是:"<<d.B::m_a<<endl;
    cout<<"C::m_a的地址是:"<<&d.C::m_a<<",值是:"<<d.B::m_a<<endl;
    
}

输出:

m_a的值为:30,m_b的值为:10,m_c的为:20
B::m_a的地址是:0x737c7ff6f0,值是:80
C::m_a的地址是:0x737c7ff6f0,值是:80


已发布

分类

可以收藏大挪耗一下。下载麻烦点城通网盘,站长保证下载速度,不会限速的,放心点就是了;分卷,安卓下载为txt:程序下载为url,不会下载参考不会下载。如果你想让本站活的久一点,请直接捐助

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注