Di solito i programmi non sono formati da più eseguibili, ma da un singolo in cui sono linkati più moduli oggetto, ognuno derivante dalla compilazione di un sorgente.
In questo caso c'è un solo main (che può essere in uno qualunque dei .cpp), il quale può utilizzare funzioni/classi/variabili/... definiti negli altri .cpp. Nel tenere insieme il tutto giocano un ruolo determinante i .h, come suppongo ti verrà insegnato.