Why do we need a header file? And why multiple ".cpp" files for every project?

Actually I originally started doing it after a comment from Jules on a similar question I put on the forum a few years ago.