Kompilieren in C/C++ geschieht in zwei Phasen.
Die erste Phase ist das Übersetzen des Quelltextes in binäre Objektdateien. Diese Kompilierung geschieht ohne Wissen anderer Dateien oder Libraries.
Die zweite Phase nennt man "Linking", indem aus allen Objektdateien eine ausführbare Datei erzeugt wird.
Damit beim Übersetzen in Phase 1, die fehlenden/unbekannten Funktionen etc. bekannt sind, schreibt man diese Deklarationen in Header-Files.
Somit muss nicht die ganze C++-Quelldatei erneut übersetzt werden, sondern nur die kleinere Deklarationsdatei muss geparsed werden.