1 #include <iostream>
2 #include <string>
3
4 struct baz
5 {
6 int h;
7 int k;
bazbaz8 baz(int a, int b) : h(a), k(b) {}
9 };
10
11 struct bar
12 {
13 int i;
14 int* i_ptr;
15 baz b;
16 baz& b_ref;
barbar17 bar(int x) : i(x),i_ptr(new int(x+1)),b(i+3,i+5),b_ref(b) {}
18 };
19
20 struct foo
21 {
22 int a;
23 int* a_ptr;
24 bar b;
25
foofoo26 foo(int x) : a(x),
27 a_ptr(new int(x+1)),
28 b(2*x) {}
29
30 };
31
main(int argc,char ** argv)32 int main(int argc, char** argv)
33 {
34 foo foo1(12);
35 foo foo2(121);
36
37 foo2.a = 7777; // Stop here
38 *(foo2.b.i_ptr) = 8888;
39 foo2.b.b.h = 9999;
40
41 *(foo1.a_ptr) = 9999;
42 foo1.b.i = 9999;
43
44 int numbers[5] = {1,2,3,4,5};
45
46 return 0;
47
48 }