title: Circular dependency fix
body: <p>I'm sure this is some design flaw on my part mainly because I come from a Java background. But it is what it is.</p>
  
  <p>Here's the setup in general:</p>
  
  <p>I have a class lets say <code>A</code> with <code>#include "B.h"</code></p>
  
  <pre><code>#include "B.h"
  
  class A {
  
      // stuff
  private:
      B _b;
  
  }
  </code></pre>
  
  <p>Additionally I have class <code>B</code> with <code>#include "C.h"</code></p>
  
  <pre><code>#include "C.h"
  
  class B {
  
      // more stuff
  
  private:
      C::EnumType _cEnum;
  }
  </code></pre>
  
  <p>And lastly I have class <code>C</code> with <code>#include "A.h"</code></p>
  
  <pre><code>#include "A.h"
  
  class C {
  public:
      C(A a);
      enum EnumType {
          // enum stuff
      };
  
      // more stuff
  
  }
  </code></pre>
  
  <p>How can I fix this? I've tried some business with forward declarations but it didn't seem to work, though I don't claim that I did it correctly. Namespaces maybe? </p>