qfedu-cpp-level/day6/d1.cpp

45 lines
537 B
C++

// 多继承(同属一个超级父类)产生的问题
#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;
}