What is the difference between a .cpp file and a .h file?
The C++ build system (compiler) knows no difference, so it’s all one of conventions. The convention is that .h files are declarations, and .cpp files are definitions. That’s why .h files are #included — we include the declarations.