title: C++ Header Files, Code Separation
body: <p>I am new to C++ and I had a few general questions about code separation. I have currently built a small application, all in one file.  What I want to do now is convert this into separate files such that they contain similar code or whatnot.  My real question right now is, how do I know how to separate things? What is the invisible margin that code should be separated at?  </p>
  
  <p>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?  </p>
  
  <p>Any insight into methods or best practises would be great, thanks!</p>