forked from OSchip/llvm-project
48 lines
627 B
C++
48 lines
627 B
C++
|
#include <iostream>
|
||
|
#include <string>
|
||
|
|
||
|
struct baz
|
||
|
{
|
||
|
int h;
|
||
|
int k;
|
||
|
baz(int a, int b) : h(a), k(b) {}
|
||
|
};
|
||
|
|
||
|
struct bar
|
||
|
{
|
||
|
int i;
|
||
|
int* i_ptr;
|
||
|
baz b;
|
||
|
baz& b_ref;
|
||
|
bar(int x) : i(x),i_ptr(new int(x+1)),b(i+3,i+5),b_ref(b) {}
|
||
|
};
|
||
|
|
||
|
struct foo
|
||
|
{
|
||
|
int a;
|
||
|
int* a_ptr;
|
||
|
bar b;
|
||
|
|
||
|
foo(int x) : a(x),
|
||
|
a_ptr(new int(x+1)),
|
||
|
b(2*x) {}
|
||
|
|
||
|
};
|
||
|
|
||
|
int main(int argc, char** argv)
|
||
|
{
|
||
|
foo foo1(12);
|
||
|
foo foo2(121);
|
||
|
|
||
|
foo2.a = 7777; // Stop here
|
||
|
*(foo2.b.i_ptr) = 8888;
|
||
|
foo2.b.b.h = 9999;
|
||
|
|
||
|
*(foo1.a_ptr) = 9999;
|
||
|
foo1.b.i = 9999;
|
||
|
|
||
|
int numbers[5] = {1,2,3,4,5};
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
}
|