title: C++ design decisions: one header for muliple source files... or not
body: <p>Similar questions have been asked in StackOverflow but nothing quite answer my problem, so here it goes:</p>
  
  <p>In my program I will have a lot of functions like: <code>createCamera()</code>, <code>createCube()</code>, <code>createSphere()</code>, etc. probably with different signatures as well. As of now I see three different options to organize my files:</p>
  
  <ol>
  <li>Create one <em>creationCommands.hpp</em> file and add there all declarations
  of my functions. Create <em>creationCommands.cpp</em> file and add there all
  definitions of those functions. This solution doesn't suit me becasue
  I will eventually end up with uber source file. </li>
  <li>Create one <em>creationCommands.hpp</em> file, add there all declarations of my functions and create seperate source files (e.g.
  <em>createCube.cpp</em>) for definitions. This way I will be able to easily
  view all my declarations in one place and avoid one big source file.</li>
  <li>Create separate header and source files for all commands and include
  them (header files) in <em>creationCommands.hpp</em> for convenience
      sake. This method yields a lot of header files that will only
      consist of only one or two function declarations, which I don't know if it's
      good or not.</li>
  </ol>
  
  <p>The question is: what of those three options will be the best in my case? Or maybe there are different ways to solve this.</p>