title: C++ Header and Source file design implementation
body: <p>I have a few queries regarding the design principle of laying out a C++ header and source files:
  I have recently taken over a project in which the previous programmer used to have this, which is particularly annoying because I read somewhere that we shouldn't include a .cpp file in a .hpp file (The preprocessor will just copies and pastes the .cpp file into a .hpp) </p>
  
  <blockquote>
    <p>Q1. Including a .cpp file in a .hpp file is bad? why?</p>
  </blockquote>
  
  <p><br>Due to the problem above, I am facing many "multiple declaration" errors when I load my program in eclipse, even though i added the header guards in all the .hpp files.  </p>
  
  <blockquote>
    <p>Q2. Should i be including the header guards in the .cpp files as well?
    I tried the later too but to no avail. Any suggestions on this?
    <br></p>
    
    <p>Q3. If 2 or more of my .cpp files need the same header files to be
    used what is the best way to include all those header files? Should i
    create a new header file say h1.hpp, include all the header files I
    need in those 2 or more .cpp files and later include in this header
    file in those .cpp files(s)?</p>
  </blockquote>
  
  <p>Is it an efficient approach ?</p>