How do you guys like to organize your C++ code? What I usually do is create a single .cpp file with my main loop, and then put all my support functions (graphics, keyboard, etc. ) in headers. But I've found that this often leads to confusion when two headers need to access one header, and I want to avoid headers being accessed twice.
How do you organize your C++ code? What methods have you found to be effective?