<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[&amp;lt;&amp;lt; der Basisklasse aufrufen]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich hab ein (zumindest für mich) verzwicktes Problem.<br />
Der Folgende Code liefert mir ein hübsches Fenster &quot;Die Anweisung in 'xxx' verweist auf Speicher in '0x0000'. Der Vorgang &quot;read&quot; konnte nicht durchgeführt werden&quot;</p>
<pre><code>char* pcGetText(void)
{
  return NULL;
}

int main ()
{
  fstream outfile (&quot;test.txt&quot;,ios::app);
  outfile &lt;&lt; pcGetText;
}
</code></pre>
<p>In meiner Implementation der Standard Library wird beim Operator &lt;&lt; ein strlen des Wertes (in meinem Fall NULL) gemacht. Das geht nicht gut.</p>
<p>Ich hab nun versucht eine Klasse von fstream abzuleiten und den Operator &lt;&lt; zu überschreiben.</p>
<pre><code>class myfstream : public fstream
{
  public:
    friend myfstream&amp; operator&lt;&lt;(myfstream&amp; Fstr, const char * pcChar)
    {
      if (pcChar)
      {
        //Fstr &lt;&lt; pcChar;
        Fstr.rdbuf()-&gt;sputn(pcChar, strlen(pcChar));
      }
      else
      {
        //Fstr &lt;&lt; &quot;(NULL)&quot;;
        Fstr.rdbuf()-&gt;sputn(&quot;(NULL)&quot;, strlen(&quot;(NULL)&quot;));
      }
      return Fstr;
    }
};
</code></pre>
<p>Das funktioniert ja, aber ich möchte nun im &lt;&lt; Operator der Klasse myfstream den Operator &lt;&lt; der Basisklasse fstream aufrufen (den Teil im Code der Auskommentiert ist, statt der Zeile darunter verwenden).<br />
&lt;&lt; macht ja mehr als nur den Aufruf von rdbuf.</p>
<p>Kann mir da wer helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207427/lt-lt-der-basisklasse-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 06:05:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207427.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 Mar 2008 13:29:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;lt;&amp;lt; der Basisklasse aufrufen on Fri, 07 Mar 2008 13:29:12 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich hab ein (zumindest für mich) verzwicktes Problem.<br />
Der Folgende Code liefert mir ein hübsches Fenster &quot;Die Anweisung in 'xxx' verweist auf Speicher in '0x0000'. Der Vorgang &quot;read&quot; konnte nicht durchgeführt werden&quot;</p>
<pre><code>char* pcGetText(void)
{
  return NULL;
}

int main ()
{
  fstream outfile (&quot;test.txt&quot;,ios::app);
  outfile &lt;&lt; pcGetText;
}
</code></pre>
<p>In meiner Implementation der Standard Library wird beim Operator &lt;&lt; ein strlen des Wertes (in meinem Fall NULL) gemacht. Das geht nicht gut.</p>
<p>Ich hab nun versucht eine Klasse von fstream abzuleiten und den Operator &lt;&lt; zu überschreiben.</p>
<pre><code>class myfstream : public fstream
{
  public:
    friend myfstream&amp; operator&lt;&lt;(myfstream&amp; Fstr, const char * pcChar)
    {
      if (pcChar)
      {
        //Fstr &lt;&lt; pcChar;
        Fstr.rdbuf()-&gt;sputn(pcChar, strlen(pcChar));
      }
      else
      {
        //Fstr &lt;&lt; &quot;(NULL)&quot;;
        Fstr.rdbuf()-&gt;sputn(&quot;(NULL)&quot;, strlen(&quot;(NULL)&quot;));
      }
      return Fstr;
    }
};
</code></pre>
<p>Das funktioniert ja, aber ich möchte nun im &lt;&lt; Operator der Klasse myfstream den Operator &lt;&lt; der Basisklasse fstream aufrufen (den Teil im Code der Auskommentiert ist, statt der Zeile darunter verwenden).<br />
&lt;&lt; macht ja mehr als nur den Aufruf von rdbuf.</p>
<p>Kann mir da wer helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470027</guid><dc:creator><![CDATA[pomann]]></dc:creator><pubDate>Fri, 07 Mar 2008 13:29:12 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; der Basisklasse aufrufen on Fri, 07 Mar 2008 14:48:21 GMT]]></title><description><![CDATA[<p>Hilft dir der Function call auf die spruenge?</p>
<pre><code class="language-cpp">BaseClass::operator&lt;&lt;(object);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1470071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470071</guid><dc:creator><![CDATA[O.G.Wrapper]]></dc:creator><pubDate>Fri, 07 Mar 2008 14:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; der Basisklasse aufrufen on Sat, 08 Mar 2008 20:07:08 GMT]]></title><description><![CDATA[<p>ne, so tuts leider auch nicht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470706</guid><dc:creator><![CDATA[pomann]]></dc:creator><pubDate>Sat, 08 Mar 2008 20:07:08 GMT</pubDate></item></channel></rss>