Hay dos aspectos en esto. Uno es entender que el compilador de C++ necesita referencias a las funciones y clases que estás usando fuera de tu módulo actual. El otro es entender cómo funciona el preprocesador.
Lo que te refieres es lo que se llama un archivo de cabecera. Contiene referencias a una biblioteca que contiene clases y funciones, y …