1 struct A
2 {
3   A ();
4   ~A ();
5 };
6 
7 struct B
8 {
9   A b;
10   virtual void mb ();
11   B (int);
12   virtual ~B ();
13 };
14 
15 struct C : public B
16 {
17   virtual void mc ();
18   C (int);
19   ~C ();
20 };
21 
~C()22 inline C::~C () {}
23 
24 struct D : public C
25 {
26   A d;
27   D (int);
28   ~D ();
29 };
30