title: "Class type redefinition" error between header and source files
body: <p>So I'm having a problem which I'm sure there is an extremely obvious solution for, but I just can't seem to figure it out.  Basically, when I try to do class definitions in my headers and implementation in my source files, I am getting an error saying that I am redefining my classes.  Using Visual C++ 2010 Express. </p>
  
  <p>Exact error: "error C2011: 'Node' : 'class' type redefinition"</p>
  
  <p>Example code included below:</p>
  
  <p>Node.h:</p>
  
  <pre><code>#ifndef NODE_H
  #define NODE_H
  #include &lt;string&gt;
  
  class Node{
  public:
      Node();
      Node* getLC();
      Node* getRC();
  private:
      Node* leftChild;
      Node* rightChild;
  };
  
  #endif
  </code></pre>
  
  <p>Node.cpp:</p>
  
  <pre><code>#include "Node.h"
  #include &lt;string&gt;
  
  using namespace std;
  
  
  class Node{
      Node::Node(){
          leftChild = NULL;
          rightChild = NULL;
      }
  
      Node* Node::getLC(){
          return leftChild;
      }
  
      Node* Node::getRC(){
          return rightChild;
      }
  
  }
  </code></pre>