Note 1: There are no comments here so I can keep everything to one page, and because we will discuss the code a bit in class.
Note 2: There is a memory leak in this code, can you spot it?
Note 3: The .h files should have #ifndef's protecting against multiple inclusions ...