.cpp is not a header file, it is a source file, and is the part of the program that is actually compiled. It contains the implementation of non-template functions and methods.
.h files are just the prototypes of non-template methods and functions, and well as the definitions of classes. It is used mainly so other .cpp files can tell what functions will be defined in other .cpp files.
One small note on terminology: declarations are typically located in the header file and definitions, or implementations, are generally located in the source file.