+ header file, include files in define block or just on the top of the file
<p>What is the best location for a file include in C++? For example:</p>

<pre><code>/*Foo.h*/
#include &lt;string&gt;       //Should I place this between the #ifndef #endif?
#include "FooBar.h"
using namespace std;

#ifndef Foo_class
#define Foo_class
class Foo
{   
    /*XXX*/
}
#endif

/*FooBar.h*/
#ifndef FooBar_class
#define FooBar_class
class FooBar
{   
    /*XXX*/
}
#endif

/*Foo.cpp*/
#include "Foo.h"
/*XXX*/

/*FooBar.cpp*/
#include "FooBar.h"
/*XXX*/
</code></pre>

<p>Should I place the include between the define so that it only gets included when needed? Does it have impact to the system when you don't do that?</p>
