title: C++/cli: declaration of unmanaged class and managed class
body: <p>While writing code I observed that if i declare unmanaged classs before managed  class the code compiles with no error:</p>
  
  <pre><code>#include &lt;opencv2\core\core.hpp&gt;
  #include &lt;opencv2\imgproc\imgproc.hpp&gt;
  #include &lt;opencv2\highgui\highgui.hpp&gt;
  
  using namespace System;
  
  namespace OpenCVDll
  {
      public class OpenCV
      {
      public:
          //members
          cv::Mat CalibrationDark;
          cv::Mat CalibrationBright;
          unsigned short* dark;
          unsigned short* bright;
  
          //methods
          void DarkCalibration();
          void BrightCalibration();
          OpenCV(){}
          ~OpenCV();
      };
  
      public ref class MOpenCV
      {
      public:
          //members
          OpenCV* UOpenCV; 
  
          //methods
          MOpenCV();
          !MOpenCV();
          ~MOpenCV();
  
      private:
          //methods
          void Destruction();
      };
  }`
  </code></pre>
  
  <p>However if I declare the classes other way around, first managed and then unmanaged:</p>
  
  <pre><code>#include &lt;opencv2\core\core.hpp&gt;
  #include &lt;opencv2\imgproc\imgproc.hpp&gt;
  #include &lt;opencv2\highgui\highgui.hpp&gt;
  
  using namespace System;
  
  namespace OpenCVDll
  {
      public ref class MOpenCV
      {
      public:
          //members
          OpenCV* UOpenCV; 
  
          //methods
          MOpenCV();
          !MOpenCV();
          ~MOpenCV();
  
      private:
          //methods
          void Destruction();
      };
  
      public class OpenCV
      {
      public:
          //members
          cv::Mat CalibrationDark;
          cv::Mat CalibrationBright;
          unsigned short* dark;
          unsigned short* bright;
  
          //methods
          void DarkCalibration();
          void BrightCalibration();
          OpenCV(){}
          ~OpenCV();
      };
  }
  </code></pre>
  
  <p>I get missing type error: error C4430: missing type specifier - int assumed. Note: C++ does not support default-int </p>
  
  <p>Why is it so?</p>