| |
| class A1 { |
| public: |
| int x; |
| int y; |
| }; |
| |
| class A2 { |
| public: |
| int x; |
| int y; |
| }; |
| |
| class A3 { |
| public: |
| int x; |
| int y; |
| }; |
| |
| class X : public A1, public A2 { |
| public: |
| int z; |
| }; |
| |
| class L : public A1 { |
| public: |
| int z; |
| }; |
| |
| class LV : public virtual A1 { |
| public: |
| int z; |
| }; |
| |
| class M : public A2 { |
| public: |
| int w; |
| }; |
| |
| class N : public L, public M { |
| public: |
| int r; |
| }; |
| |
| class K : public A1 { |
| public: |
| int i; |
| }; |
| |
| class KV : public virtual A1 { |
| public: |
| int i; |
| }; |
| |
| class J : public K, public L { |
| public: |
| int j; |
| }; |
| |
| class JV : public KV, public LV { |
| public: |
| int jv; |
| }; |
| |
| class JVA1 : public KV, public LV, public A1 { |
| public: |
| int jva1; |
| }; |
| |
| class JVA2 : public KV, public LV, public A2 { |
| public: |
| int jva2; |
| }; |
| |
| class JVA1V : public KV, public LV, public virtual A1 { |
| public: |
| int jva1v; |
| }; |
| |
| int main() |
| { |
| A1 a1; |
| A2 a2; |
| A3 a3; |
| X x; |
| L l; |
| M m; |
| N n; |
| K k; |
| J j; |
| JV jv; |
| JVA1 jva1; |
| JVA2 jva2; |
| JVA1V jva1v; |
| |
| int i; |
| |
| i += k.i + m.w + a1.x + a2.x + a3.x + x.z + l.z + n.r + j.j; |
| |
| /* Initialize all the fields. Keep the order the same as in the |
| .exp file. */ |
| |
| a1.x = 1; |
| a1.y = 2; |
| |
| a2.x = 1; |
| a2.y = 2; |
| |
| a3.x = 1; |
| a3.y = 2; |
| |
| x.A1::x = 1; |
| x.A1::y = 2; |
| x.A2::x = 3; |
| x.A2::y = 4; |
| x.z = 5; |
| |
| l.x = 1; |
| l.y = 2; |
| l.z = 3; |
| |
| m.x = 1; |
| m.y = 2; |
| m.w = 3; |
| |
| n.A1::x = 1; |
| n.A1::y = 2; |
| n.A2::x = 3; |
| n.A2::y = 4; |
| n.w = 5; |
| n.r = 6; |
| n.z = 7; |
| |
| k.x = 1; |
| k.y = 2; |
| k.i = 3; |
| |
| j.K::x = 1; |
| j.K::y = 2; |
| j.L::x = 3; |
| j.L::y = 4; |
| j.i = 5; |
| j.z = 6; |
| j.j = 7; |
| |
| jv.x = 1; |
| jv.y = 2; |
| jv.i = 3; |
| jv.z = 4; |
| jv.jv = 5; |
| |
| jva1.KV::x = 1; |
| jva1.KV::y = 2; |
| jva1.LV::x = 3; |
| jva1.LV::y = 4; |
| jva1.z = 5; |
| jva1.i = 6; |
| jva1.jva1 = 7; |
| |
| jva2.KV::x = 1; |
| jva2.KV::y = 2; |
| jva2.LV::x = 3; |
| jva2.LV::y = 4; |
| jva2.A2::x = 5; |
| jva2.A2::y = 6; |
| jva2.z = 7; |
| jva2.i = 8; |
| jva2.jva2 = 9; |
| |
| jva1v.x = 1; |
| jva1v.y = 2; |
| jva1v.z = 3; |
| jva1v.i = 4; |
| jva1v.jva1v = 5; |
| |
| return 0; /* set breakpoint here */ |
| } |