title: why some time "forward declaration" in the header gave me "Field has incomplete type"?
body: <p>In class A contains a class B object</p>
  
  <pre><code>ClassB;
  class A
  {
      private:
      ClassB b;
  }
  </code></pre>
  
  <p>sometimes declare classB is enough, sometimes,I have to use #include "ClassB.h", why? Any difference when using those two?</p>