When a project grows it is common to split the code up into different source files. When this happens the interface and implementation are generally separated. The interface is placed in a header file, which commonly has the same name as the source file and a .h file extension. This header file contains forward declarations for the source file entities that need to be accessible to other compilation units in the project. A compilation unit consists of a source file (.cpp) plus any included header files (.h or .hpp).
Why to Use Headers
C++ requires everything to be declared before it can be used. It is not enough to simply compile ...