#include header style
<p>I have a question regarding "best-practice" when including headers.</p>

<p>Obviously include guards protect us from having multiple includes in a header or source file, so my question is whether you find it beneficial to #include all of the needed headers in a header or source file, even if one of the headers included already contains one of the other includes. The reasoning for this would be so that the reader could see everything needed for the file, rather than hunting through other headers.</p>

<p>Ex: Assume include guards are used:</p>

<pre><code>// Header titled foo.h
#include "blah.h"
//....
</code></pre>

<p>.</p>

<pre><code>// Header titled bar.h that needs blah.h and foo.h
#include "foo.h"
#include "blah.h" // Unnecessary, but tells reader that bar needs blah
</code></pre>

<p>Also, if a header is not needed in the header file, but is needed in it's related source file, do you put it in the header or the source?</p>
