title: "Error: Redefinition of Class" - But No Redeclaration
body: <p>So I have this header file:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  
  class Furniture
  {
      float width, height, depth;
      std::string name;
  
  public:
      // Constructor
      Furniture(std::string name);
      void ReadDimensions();
      virtual void Print();
  };
  </code></pre>
  
  <p>And this .cc file to define the functions declared above:</p>
  
  <pre><code>#include "Furniture.h"
  
  Furniture::Furniture(std::string name)
  {
      this-&gt;name = name;
  }
  
  void Furniture::ReadDimensions()
  {
      // Read width
      std::cout &lt;&lt; "Enter width: ";
      std::cin &gt;&gt; width;
      // Read height
      std::cout &lt;&lt; "Enter height: ";
      std::cin &gt;&gt; height;
      // Read depth
      std::cout &lt;&lt; "Enter depth: ";
      std::cin &gt;&gt; depth;
  
      if (width &lt;= 0 || height &lt;= 0 || depth &lt;=0)
              std::cout &lt;&lt; "You entered invalidd values\n";
  }
  </code></pre>
  
  <p>And when I try to compile my main file which includes two child classes written in their own files, it gives me an error which reads </p>
  
  <p>"Furniture.h:4: error: redefinition of ‘class Furniture’</p>
  
  <p>Furniture.h:5: error: previous definition of ‘class Furniture’"</p>
  
  <p>But as far as I know I declared the class correctly and didn't redeclare it in the definition. Why is it giving me this error and what can I do to fix it?</p>