Hi there, you will need to include the standard library headers for the artifacts that you're using in your header file. Otherwise the compiler will puke when it comes across a name that it can't find. You will also either have to (not recommended) put a 'using' declaration in your header or (recommended) explicitly qualify the artifacts that you're using from standard headers.
Typically, a C++ interface / implementation pair are used in this fashion:
The #include directive is essentially a glorified copy and paste. When #including a file, all that you are doing is telling the compiler to paste whatever is in the file in the spot that you've #included it. So in this case, you're pasting your header file at the top of your implementation file, then feeding the compiler the resulting 'translation
unit' as it's called.
Another issue that I can see off-hand is in your printing functions, you're printing out the pointers that are provided.
This then of course makes memory management a bit tricky. There is a better way using *Modern C++* as illustrated below:
I'm sorry that your instructor is still teaching outdated C++. Bear with it until you pass the course, then explore the wonders of "modern" C++.
* Not quite sure why code tags aren't working.