title: Error C2504 - Base class undefined
body: <p>I have a rather simple problem</p>
  
  <p>This is my <code>firstcluster.h</code></p>
  
  <pre><code>#pragma once
  
  #include "cluster.h"
  
  class FirstCluster:public Cluster{
      ...
  
  public:
      ...
  };
  </code></pre>
  
  <p>Code for cluster.h:</p>
  
  <pre><code>#pragma once
  
  // File: cluster.h
  
  class Cluster {
  protected:
      ...
  
  public:
      ...
  };
  </code></pre>
  
  <p>And i'm getting the error:</p>
  
  <pre><code>error C2504: 'Cluster' : base class undefined
  </code></pre>
  
  <p>Sometimes i get this IntelliSense error:</p>
  
  <pre><code>IntelliSense: incomplete type is not allowed ... Line 10 Column 27 
  </code></pre>
  
  <p>But it doesn't always come up.</p>
  
  <p>The <code>cluster.h</code> is included, as you can see, and all other header files are protected with <code>#pragma once</code></p>
  
  <p>I really don't know what could go wrong here?</p>
  
  <p>Can circular include make problems even if i protected everything with <code>#pragma once</code>?
  I'm using Visual Studio 2010.</p>