1. Stack at Point 1 ret 0x000 a.r,ref.r 1.0 0x004 a.i,ref.i 2.0 0x008 p0 0x8000 0x00c b.r 2.0 0x010 b.i 3.0 0x014 c.r 5.0 0x018 c.i 4.0 0x01c d.r 3.0 0x020 d.i 8.0 0x024 p1 0x028 this 0x004 0x02c c2 0x010 0x030 ret 0x034 result 0x8010 0x038 END Heap at Point 1 0.0 0x8000 0.1 0x8004 3.0 0x8010 5.0 0x8014 END You could also have p2, p3, p4, p5, e.r, and e.i between p1 and this. Stack at Point 2 ret 0x000 a.r,ref.r 1.0 0x004 a.i,ref.i 2.0 0x008 p0 0x8000 0x00c b.r 2.0 0x010 b.i 3.0 0x014 c.r 5.0 0x018 c.i 4.0 0x01c d.r,c2.r 3.0 0x020 d.i,c2.i 8.0 0x024 p1 0x8010 0x028 p2 0x02c this 0x018 0x030 ret 0x034 result 0x8020 0x038 END Heap at Point 2 0.0 0x8000 0.1 0x8004 3.0 0x8010 5.0 0x8014 2.0 0x8020 -4.0 0x8024 END You could also have p3, p4, p5, e.r, and e.i between p2 and this. 2. 0 default constructors, 1 copy constructors, 10 other constructors, and 7 destructors. Output: 3 + 5i 2 + -4i 2 + 6i -4 + 7i -4 + 7i -4 + 7i 3. i1=85000 i2=35000 return ((double)i1)*((double)i2); 4. p4=a.add(b.add(c.add(&d))); 2 objects cannot be deleted (note that the one pointed to by p4 can be). 5. One of the following three lines, depending on what X is: 0 + 0i -1 + 3i -6 + 10i 6. process() is 12 lines and process2() is 7 lines (14 and 9 lines respectively is also okay). 7. I found the most interesting idea to be that students will learn most effectively only in the period of time that is referred to as active learning time. I find this interesting because it indicates how to approach teaching and studying.