ok, vorrei continuare questa discussione per capire una cosa sui famosi file headers .h

In pratica come devo suddividere file principale, funzioni e prototipi?

ad esempio nei files header vanno solo i prototipi o anche le funzioni vere e proprie?

in un file: my_header.h posso mettere il protoripo:

codice:
void _function(const std::string& key, const std::string& value);
o devo mettere anche la funzione stessa?

posso fare ad esempio:

main.cpp // programma generale
main.h // contenitore di prototipi etc..
subs.cpp // contenitore di funzioni...

va bene uno schema come questo? anche se ora che sono all'inizio mi è più congeniale fare tutto in un file!