It depends what you're using to control the compilation. At the bottom level, if you run the compiler by hand you tend to compile one .cpp file to one .o file; the .h files are just included by the .cpp files, so don't get separate object files of their own. Then finally you link together all the .o files that form a single application, to produce an executable. The idea is more than just to separate your code for easy browsing - it also means that if you change just one .cpp file it only needs to build the corresponding .o file and relink the executable, it doesn't need to recompile the whole project.
If you're using makefiles, you specify this explicitly in the makefile, stating which object files the executable depends on, and what their dependencies are (which .cpp file each .o file depends on). Make then runs the compiler once per object file that's out of date, and again to link everything together.
If you're using an IDE (e.g. Eclipse, Dev-C++, Microsoft Visual Studio) then the IDE usually controls the process, though some, like Eclipse, also let you write your own makefiles if you prefer. The IDE usually has the concept of .cpp files being members of a project; it then makes one .o file for each .cpp file, as above. If it's not doing this then perhaps you added the .cpp files to the wrong area of the project - sometimes they allow you to specify files as being part of a project without actually being explicitly compiled. It depends a lot on which IDE you use, though.