<?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[Definiert?]]></title><description><![CDATA[<p>Edit :: Ich glaube, ich habe einen dummen Fehler gemacht, der mich hat glauben lassen, ostream und ofstream wären nicht über normale Referenzen ineinander konvertierbar, dem scheint aber nicht so zu sein. Ich lasse die Frage mal für Kommentare stehen.</p>
<p>Hi,</p>
<p>ich habe mal eine Frage an die Experten, ist dieser Scherz hier definiert?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;

class Test
{
  std::ostream&amp; f_;
public:
  Test(std::ostream *f)
    : f_(*f)
  {}
  void test(const char *s)
  {
    if (f_.good())
      f_ &lt;&lt; s;
  }
};

int main()
{
  using namespace std;
  ofstream testi(&quot;testa.txt&quot;);
  Test t(&amp;testi);
  t.test(&quot;oO?&quot;);
}
</code></pre>
<p>Ich könnte es gebrauchen, aber irgendwie ist es ironisch. Hintergrund ist, dass eine Logging-Klasse sowohl mit einem ostream&amp; (cout, cerr z.B.) als auch mit einem std::ofstream funktionieren soll und mir der Umweg über std::streambuf irgendwie so gar nicht zusagen will.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/292607/definiert</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 20:03:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/292607.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Sep 2011 20:03:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Definiert? on Tue, 13 Sep 2011 20:10:29 GMT]]></title><description><![CDATA[<p>Edit :: Ich glaube, ich habe einen dummen Fehler gemacht, der mich hat glauben lassen, ostream und ofstream wären nicht über normale Referenzen ineinander konvertierbar, dem scheint aber nicht so zu sein. Ich lasse die Frage mal für Kommentare stehen.</p>
<p>Hi,</p>
<p>ich habe mal eine Frage an die Experten, ist dieser Scherz hier definiert?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;

class Test
{
  std::ostream&amp; f_;
public:
  Test(std::ostream *f)
    : f_(*f)
  {}
  void test(const char *s)
  {
    if (f_.good())
      f_ &lt;&lt; s;
  }
};

int main()
{
  using namespace std;
  ofstream testi(&quot;testa.txt&quot;);
  Test t(&amp;testi);
  t.test(&quot;oO?&quot;);
}
</code></pre>
<p>Ich könnte es gebrauchen, aber irgendwie ist es ironisch. Hintergrund ist, dass eine Logging-Klasse sowohl mit einem ostream&amp; (cout, cerr z.B.) als auch mit einem std::ofstream funktionieren soll und mir der Umweg über std::streambuf irgendwie so gar nicht zusagen will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118926</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 13 Sep 2011 20:10:29 GMT</pubDate></item><item><title><![CDATA[Reply to Definiert? on Tue, 13 Sep 2011 20:48:10 GMT]]></title><description><![CDATA[<p>Ja, du kannst sowohl <code>cout</code> als auch <code>ofstream</code> s mit <code>ostream</code> abdecken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118946</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Tue, 13 Sep 2011 20:48:10 GMT</pubDate></item><item><title><![CDATA[Reply to Definiert? on Tue, 13 Sep 2011 21:20:45 GMT]]></title><description><![CDATA[<p>Man sollte noch sagen: cout <strong>ist</strong> ein ostream in dem Sinne, dass es tatsächlich eine Objektinstanz der Klasse ostream ist, wohingegen ofstream eine von ostream abgeleitete Klasse ist und die Aussage &quot;ein ofstream <strong>ist</strong> ein ostream&quot; dabei im Sinne von Vererbung gilt. Im Endeffekt heißt das aber auch nur, dass du jeden beliebigen ofstrem oder ostream (also insbesondere auch cout) verwenden kannst, wo ein ostream erwartet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118954</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 13 Sep 2011 21:20:45 GMT</pubDate></item></channel></rss>