title: Dealing with circular inclusion in a parent/child class relationship
body: <p>Assume I've made a class, say <code>Parent</code>, that has a composition relation with <code>Child</code>. The parent class holds a list of children.</p>
  
  <p>I want all children to hold a reference to the parent, so every child holds a <code>Parent</code> pointer.</p>
  
  <p>This will cause circular inclusion. I refer to <code>Child</code> in <em>parent.h</em> and I refer to <code>Parent</code> in <em>child.h</em>. Therefore <code>Parent</code> will need to include <code>Child</code>, which needs to include <code>Parent</code>.</p>
  
  <p>What's the best way to work around this?</p>