<p>How do I do forward referencing / declaration in C++ to avoid circular header file references?</p>

<p>I have the #ifndef guard in the header file, yet memory tells me I need this forward referencing thing - which i've used before >&lt; but can't remember how. </p>

You predeclare the class without including it.  For example:
```
```
//#include "Foo.h" // including Foo.h causes circular reference
class Foo;

class Bar
{
...
};
```
```