#include <iostream>
using namespace std;
class Animal
{
public:
Animal(){}
~Animal(){}
int m_A = 1;
private:
};
class Needy : virtual public Animal
{
public:
Needy(){}
~Needy(){}
private:
};
class Horse :virtual public Animal
{
public:
Horse(){}
~Horse(){}
private:
};
class Mule : public Needy, public Horse
{
public:
Mule(){}
~Mule(){}
private:
};
void test01()
{
Mule mule1;
cout << mule1.m_A << endl;
}
int main()
{
test01();
}
继承关系
class Horse :virtual public Animal
class Needy : virtual public Animal
class Mule : public Needy, public Horse
Horse和Needy进行的是虚继承,这样Mule只会从Animal类继承一份 int m_A
使用VS Tools 中的VS 2017 开发者命令提示符查看,Mule的内存模型