La funzione è divisa in 3 file:
_ funzione.h : contiene la dichiarazione ed è necessario per richiamare la funzione (e all'utente per sapere come utilizzarla)
_ funzione.cpp : contiene la definizione della funzione, ovvero l'implementazione del suo algoritmo in c++.
_ funzione.o : il file prodotto dal compilatore che contiene il codice eseguibile.
Quando scrivi il programma utilizzi solo l'header e la definizione: tu scrivi l'implementazione nel file cpp, e la dichiarazione nel file h. Quando hai finito, fai compilare il file h e il file cpp. Viene prodotto un file oggetto .o che contiene il codice eseguibile della funzione.
Quando poi lo devi distribuire, dai il file h e il file o. In questo modo l'utente può vedere il file h, e quando lo importa nel suo progetto e lo compila, il compilatore ha a disposizione la dichiarazione nel file h e il codice precompilato nel file o.