25D. Summary

A C++ module usually has two parts: a header file (extension .h) and an implementation file (extension .cpp). A .cpp file always includes its own header file. You compile each module separately then link them together to make an executable program. Normally, you accomplish that using a Makefile, which uses a command such as

  g++ -Wall -c stuff.cpp
to translate stuff.cpp into stuff.o, and uses a command such as
  g++ -o stuff stuff.o tools.o places.o
to link stuff.o, tools.o and places.o into an executable file called stuff.

Include header files, not .cpp files. Do not make a header file include a .cpp file. Doing that tries to work around correct linkage. If you do that, your program will not work correctly when I link it correctly, and it will make me unhappy when I am forced take time to give your program special treatment in order to test it.