// 多继承（同属一个超级父类）产生的问题
#include <iostream>
#include <cstring>
#include <cstdlib>

using namespace std;

class A
{
public:
    int x;
};

class B : virtual public A
{
public:
    B()
    {
        x = 50;
    }
};

class C : virtual public A
{
public:
    C()
    {
        x = 100;
    }
};

class D : public C, public B
{
};

int main()
{
    D d1;
    cout << d1.x << endl;
    d1.x = 0; // x 是从 B 来的，还是从 C 来的？ C ，使用就近原则
    cout << d1.x << endl;

    return 0;
}
