Hola.
En primer lugar seŕa bueno que incluyeras el mensaje de error, que compilador usas y como compilas. Caso contrario no podemos saber que pasa.
Suponiendo que que tu código es correcto, es decir que no redeclares variables u otros errores de ese tipo, es posible hacerlo de la manera que describes ( por medio de #include ). Por lo que es probable que tu codigo no sea del todo correcto.
Igualmente, a menos que utilices templates no es lo habitual. Por lo general se incluyen los .h (.hpp, hh, o como sea que tu compilador los reconozca.).
Se le suele indicar al compilador que archivos .cpp tiene que compilar y enlazar (aunque el compilador no enlace, dejemosló así para empezar).
Si compilas desde un terminal, como en linux con g++ (gcc) u otro similar, tienes que incluir todos los archivos así:
g++ main.cpp archivo.cpp -o nombredelejecutable
o usar un makefile ( pero no creo que eso busques ).
Si estás con un IDE, debes indicarle que archivos son integrantes del proyecto, o algo parecido dependiendo de que entorno uses.
Saludos.