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 ...