When to include foo.h in foo.cpp
<p>I have frequently seen people <code>#include "foo.h"</code> at the top of "foo.cpp". It looks like you <em>could</em> always do this, but people don't. So there must be some reason behind the choice.</p>

<p>When should I <code>#include</code> the header (foo.h) inside the source file (foo.cpp)?</p>