199451b44SJordan Rupprecht #include <iostream>
299451b44SJordan Rupprecht #include <string>
399451b44SJordan Rupprecht
new_int(int val)4*2bab1738SRaphael Isemann int *new_int(int val) {
5*2bab1738SRaphael Isemann return new int(val);
6*2bab1738SRaphael Isemann }
7*2bab1738SRaphael Isemann
899451b44SJordan Rupprecht struct baz
999451b44SJordan Rupprecht {
1099451b44SJordan Rupprecht int h;
1199451b44SJordan Rupprecht int k;
bazbaz1299451b44SJordan Rupprecht baz(int a, int b) : h(a), k(b) {}
1399451b44SJordan Rupprecht };
1499451b44SJordan Rupprecht
1599451b44SJordan Rupprecht struct bar
1699451b44SJordan Rupprecht {
1799451b44SJordan Rupprecht int i;
1899451b44SJordan Rupprecht int* i_ptr;
1999451b44SJordan Rupprecht baz b;
2099451b44SJordan Rupprecht baz& b_ref;
barbar2199451b44SJordan Rupprecht bar(int x) : i(x),i_ptr(new int(x+1)),b(i+3,i+5),b_ref(b) {}
2299451b44SJordan Rupprecht };
2399451b44SJordan Rupprecht
2499451b44SJordan Rupprecht struct foo
2599451b44SJordan Rupprecht {
2699451b44SJordan Rupprecht int a;
2799451b44SJordan Rupprecht int* a_ptr;
2899451b44SJordan Rupprecht bar b;
2999451b44SJordan Rupprecht
foofoo3099451b44SJordan Rupprecht foo(int x) : a(x),
31*2bab1738SRaphael Isemann a_ptr(new_int(x+1)),
3299451b44SJordan Rupprecht b(2*x) {}
3399451b44SJordan Rupprecht
3499451b44SJordan Rupprecht };
3599451b44SJordan Rupprecht
new_foo(int x)36*2bab1738SRaphael Isemann foo *new_foo(int x) {
37*2bab1738SRaphael Isemann return new foo(x);
38*2bab1738SRaphael Isemann }
39*2bab1738SRaphael Isemann
40*2bab1738SRaphael Isemann
main(int argc,char ** argv)4199451b44SJordan Rupprecht int main(int argc, char** argv)
4299451b44SJordan Rupprecht {
4399451b44SJordan Rupprecht foo foo1(12);
4499451b44SJordan Rupprecht foo foo2(121);
45*2bab1738SRaphael Isemann foo * newd_foo = new_foo(1);
46*2bab1738SRaphael Isemann delete newd_foo;
4799451b44SJordan Rupprecht foo2.a = 7777; // Stop here
4899451b44SJordan Rupprecht *(foo2.b.i_ptr) = 8888;
4999451b44SJordan Rupprecht foo2.b.b.h = 9999;
5099451b44SJordan Rupprecht
5199451b44SJordan Rupprecht *(foo1.a_ptr) = 9999;
5299451b44SJordan Rupprecht foo1.b.i = 9999;
5399451b44SJordan Rupprecht
5499451b44SJordan Rupprecht int numbers[5] = {1,2,3,4,5};
5599451b44SJordan Rupprecht
5699451b44SJordan Rupprecht return 0; // Done initializing
5799451b44SJordan Rupprecht
5899451b44SJordan Rupprecht }
59