title: "missing type specifier" error on constructor declaration
body: <p>I have 2 classes in 2 different files:</p>
  
  <p>RegMatrix.h: </p>
  
  <pre><code>#ifndef _RM_H
  #define _RM_H
  #include "SparseMatrix.h"
  ...
  class RegMatrix{
      ...
      RegMatrix(const SparseMatrix &amp;s){...}   //ctor
      ...
  };
  #endif
  </code></pre>
  
  <p>SparseMatrix.h: </p>
  
  <pre><code>#ifndef _SM_H
  #define _SM_H
  #include "RegMatrix.h"
  ...
  class SparseMatrix{
      ...
      SparseMatrix(const RegMatrix &amp;r){...}   //ctor
      ...
  };
  #endif
  </code></pre>
  
  <p>On the constructor lines I get the errors:</p>
  
  <p>error C4430: missing type specifier - int assumed.</p>
  
  <p>error C2143: syntax error : missing ',' before '&amp;'</p>
  
  <p>But when i add the classes declarations </p>
  
  <pre><code>class SparseMatrix;
  </code></pre>
  
  <p>in the RegMatrix.h file and</p>
  
  <pre><code>class RegMatrix;
  </code></pre>
  
  <p>in the SparseMatrix.h file it works fine.
  My question is why is it needed if i have the includes?
  10x.</p>