constructor 1 called line 1 constructor 2 called line 2 destructor 2 called line 3 constructor 3 called line 4 destructor 3 called line 5 destructor 1 called