title: cyclic dependency ... how to solve?
body: <p>I think I have a cyclic dependency issue and have no idea how to solve it....
  To be as short as possible:
  I am coding something like a html parser.
  I have a main.cpp file and two header files Parser.h and Form.h.
  These header files hold the whole definitions... (I'm too lazy to make the corresponding .cpp files...</p>
  
  <p>Form.h looks like this:</p>
  
  <pre><code>//... standard includes like iostream....
  
  #ifndef Form_h_included
  #define Form_h_included
  
  #include "Parser.h"
  class Form {
  public:
      void parse (stringstream&amp; ss) {
  
          // FIXME: the following like throws compilation error: 'Parser' : is not a class or namespace name
          properties = Parser::parseTagAttributes(ss);
  
          string tag = Parser::getNextTag(ss);
          while (tag != "/form") {
              continue;
          }
          ss.ignore(); // &gt;
      }
  // ....
  };
  #endif
  </code></pre>
  
  <p>and Parser.h looks like this:</p>
  
  <pre><code>// STL includes
  #ifndef Parser_h_included
  #define Parser_h_included
  
  #include "Form.h"
  
  using namespace std;
  
  class Parser {
  public:
      void setHTML(string html) {
           ss &lt;&lt; html;
      }
      vector&lt;Form&gt; parse() {
          vector&lt;Form&gt; forms;
  
          string tag = Parser::getNextTag(this-&gt;ss);
          while(tag != "") {
              while (tag != "form") {
                  tag = Parser::getNextTag(this-&gt;ss);
              }
              Form f(this-&gt;ss);
              forms.push_back(f);
          }
      }
  // ...
  };
  #endif
  </code></pre>
  
  <p>Don't know if it is important, but I'm doing the build in MS Visual Studio Ultimate 2010
  and it throws me 
  'Parser' : is not a class or namespace name</p>
  
  <p>How to solve this problem?
  Thank you!</p>