I have a small application, all in one file. I want to convert this into separate smaller files. How do I know how to separate things? What is the invisible margin that code should be separated at?

Also, what's the point of header files? Is it to forward declare methods and classes so I can use them in my code before they are included by the linker during compilation?

Edit
Report