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;
 | |
| 	
 | |
| } |