Should every .C or .cpp file should have a header (.h) file for it?
Suppose there are following C files :
Main.C
Func1.C
It depends. Usually your reason for having separate .c files will dictate whether you need separate .h files.