title: C++ ERROR: forward declaration of 'struct...?
body: <p><strong>cyclical inclusion problem</strong></p>
  <p>I forward declare one of the classes in the header of the other in an attempt to solve their cyclical inclusion. Here are my two files:</p>
  <p>The first file (<em>Parameter.h</em>):</p>
  <pre><code>#pragma once
  #include &quot;Token.h&quot;`
  
  class Expression;
  
  class Parameter {
  public:
  
      Parameter() {
          string = new Token();
          identifier = new Token();
          expr = new Expression();
      }
  
      Token* string;
      Token* identifier;
      Expression* expr;
  };
  </code></pre>
  <p>The second file (<em>Expression.h</em>):</p>
  <pre><code>#pragma once
  #include &quot;Token.h&quot;
  #include &quot;Parameter.h&quot;
  
  class Expression {
  public:
      Expression() {
          param1 = new Parameter();
          param2 = new Parameter();
          op = new Token();
      }
  
      Expression(Parameter* p1, Token* o, Parameter* p2) {
          param1 = p1;
          param2 = p2;
          op = o;
      }
  
      Parameter* param1;
      Parameter* param2;
      Token* op;
  };
  </code></pre>
  <p>As you can see, I forward declare Expression in Parameter.h, but I'm still getting the following two errors:</p>
  <blockquote>
  <p>forward declaration of 'struct Expression'</p>
  <p>invalid use of incomplete type 'struct Expression'</p>
  </blockquote>
  <p>I looked a several previously posted questions but still, couldn't solve this problem. Thanks.</p>