В C ++ заголовочные файлы используются для объявления, где, как и в большинстве случаев, исходные файлы используются для определения.
Если вам нужно использовать класс в более чем одном файле, вам необходимо предоставить объявление класса каждому, в этом случае лучше использовать заголовочные файлы, иначе, если вы используете исходные файлы, вы в конечном итогес несколькими определениями и, кроме того, размер исполняемого файла будет увеличиваться.
Как правило, рекомендуется использовать файлы заголовков для каждого класса, а иногда и для группы связанных классов.