Why this error? "no appropriate default constructor available"
<p>Someone has given me the following C++ code snippet to try out - and now I have lost contact with them (its a long story). Anyway, it won't compile - I get an error </p>

<blockquote>
  <p>error C2512: 'mstream' : no appropriate default constructor available</p>
</blockquote>

<p>Can anyone explain why, and what is needed to fix it.</p>

<pre><code>class mstream : private ostream
{
  public:

  mstream&amp; operator &lt;&lt; (char *value)
  {
    printf ("[%s]\n", value);
    return *this;
  }
  mstream&amp; operator &lt;&lt; (int value)
  {
    printf ("[%u]\n", value);
    return *this;
  }

};
mstream g_mcout;
</code></pre>

<p><strong>EDIT: Oops, missed this out...</strong></p>

<pre><code>ostream&amp; mcout ()
{
  return g_mcout;
}
ostream&amp; SgDebug ()
{
  return g_mcout;
}
</code></pre>

<p><strong>FYI:</strong> the reason for this strange looking code is all to do with merging a C++ with a C program. The printf()'s will actually be changed to my_printf()'s which do a wide variety of custom things.</p>
