Commit | Line | Data |
---|---|---|
10abb1d4 JB |
1 | struct A |
2 | { | |
3 | int a; | |
4 | A (int aa): a (aa) {} | |
5 | }; | |
6 | ||
7 | struct B: public A | |
8 | { | |
9 | int b; | |
10 | B (int aa, int bb): A (aa), b(bb) {} | |
11 | }; | |
12 | ||
4e8f195d TT |
13 | |
14 | struct Alpha | |
15 | { | |
16 | virtual void x() { } | |
17 | }; | |
18 | ||
19 | struct Gamma | |
20 | { | |
21 | }; | |
22 | ||
23 | struct Derived : public Alpha | |
24 | { | |
25 | }; | |
26 | ||
27 | struct VirtuallyDerived : public virtual Alpha | |
28 | { | |
29 | }; | |
30 | ||
31 | struct DoublyDerived : public VirtuallyDerived, | |
32 | public virtual Alpha, | |
33 | public Gamma | |
34 | { | |
35 | }; | |
36 | ||
10abb1d4 JB |
37 | int |
38 | main (int argc, char **argv) | |
39 | { | |
40 | A *a = new B(42, 1729); | |
41 | B *b = (B *) a; | |
f0050c20 AR |
42 | A &ar = *b; |
43 | B &br = (B&)ar; | |
10abb1d4 | 44 | |
4e8f195d TT |
45 | Derived derived; |
46 | DoublyDerived doublyderived; | |
47 | ||
48 | Alpha *ad = &derived; | |
49 | Alpha *add = &doublyderived; | |
50 | ||
10abb1d4 JB |
51 | return 0; /* breakpoint spot: casts.exp: 1 */ |
52 | } |