Puedes usar el mismo .h en todos los .cpp que quieras e incluso en otros .h.
Un ejemplo claro es el iostream.h, hay muchos .cpp que lo utilizan sin problemas
Si vas a utilizar un .h en otros .h, tienes que tener una precaución para evitar errores de cosas definidas dos veces. Cuando hagas, por ejemplo, fichero.h, hazlo asi
#ifndef _FICHERO_H
#define _FICHERO_H
// Aqui tus definiciones y cosas
#endif
Otro temilla:
Si pones include <...> estas diciendo que el .h está en los directorios de búsqueda de ficheros de cabecera, habitualmente los del compilador.
Si pones include "..." estas diciendo que el .h está en el directorio actual.
Si tu .h va a estar en un directorio separado pero que no es del sistema, ninguna de las dos opciones te vale tal cual.
Para usar la primera debes añadir en las opciones de tu proyecto el directorio donde tienes el .h como directorio de búsqueda
Para usar la segunda, entre las "..." debes poner también el path
#include "c:\miproyecto\fichero.h"
Se bueno.