虚基类的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<iostream>
using namespace std;
class A
{
protected:
int x;
public:
A()
{x=1;}
};
class B:virtual public A
{
public:
    B()
    {cout<<"B:x="<<x<<endl;}

};
class C:virtual public A
{
public:
    C()
    {cout<<"C:x="<<x<<endl;}

};
class D:public B,public C
{
public:
    D()
    {cout<<"D:x="<<x<<endl;}
};
int main()
{
    D obj;
    return 0;
}