<?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[Operator &amp;lt;&amp;lt; überladen]]></title><description><![CDATA[<pre><code>std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const Kugel&amp; rhs){
   out &lt;&lt; rhs.r &lt;&lt; &quot; &quot; &lt;&lt; rhs.x;
   return out;
}
</code></pre>
<p>ostream kann auch eine Datei sein oder ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/331469/operator-lt-lt-überladen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 01:59:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/331469.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Mar 2015 15:18:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Mon, 02 Mar 2015 15:18:52 GMT]]></title><description><![CDATA[<pre><code>std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const Kugel&amp; rhs){
   out &lt;&lt; rhs.r &lt;&lt; &quot; &quot; &lt;&lt; rhs.x;
   return out;
}
</code></pre>
<p>ostream kann auch eine Datei sein oder ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444921</guid><dc:creator><![CDATA[quick]]></dc:creator><pubDate>Mon, 02 Mar 2015 15:18:52 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Mon, 02 Mar 2015 15:21:48 GMT]]></title><description><![CDATA[<p>Sorry, sollte nach C++ . Sorry!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444922</guid><dc:creator><![CDATA[quick]]></dc:creator><pubDate>Mon, 02 Mar 2015 15:21:48 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Mon, 02 Mar 2015 15:40:20 GMT]]></title><description><![CDATA[<p>ostream ist generisch (ueber vererbung, nicht ueber templates) und kann osstream/sstream fuer string, cout fuer die standardausgabe, ofstream/fstream oder selbst definierten streams sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444924</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Mon, 02 Mar 2015 15:40:20 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Mon, 02 Mar 2015 18:14:43 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/u109509" rel="nofollow">SeppJ</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/f10" rel="nofollow">C (alle ISO-Standards)</a> in das Forum <a href="http://www.c-plusplus.net/forum/f15" rel="nofollow">C++ (alle ISO-Standards)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444956</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 02 Mar 2015 18:14:43 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Mon, 02 Mar 2015 18:26:03 GMT]]></title><description><![CDATA[<p>Marthog schrieb:</p>
<blockquote>
<p>ostream ist generisch (ueber vererbung, nicht ueber templates) und kann osstream/sstream fuer string, cout fuer die standardausgabe, ofstream/fstream oder selbst definierten streams sein.</p>
</blockquote>
<p>An sich ist ostream schon eine konkrete Klasse. Aber stringstream und fstream und ofstream<sup>*</sup> erben von ostream (und noch ein paar mehr. Oder ggf. auch nutzerdefinierte Streams). Und cout ist eine Instanz von ostream. Entsprechend kann man die Funktion mit cout als Argument aufrufen, aber natürlich auch mit jeder Instanz einer abgeleiteten Klasse.</p>
<p>PS: Die Vererbungshierarchie der ostreams habe ich hier etwas vereinfacht dargestellt. In Wahrheit sind das alles Instanzierungen von Klassentemplates, die dann voneinander erben.</p>
<p><sup>*</sup>: Welches übrigens nicht von fstream erbt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444959</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 02 Mar 2015 18:26:03 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Wed, 25 Mar 2015 20:42:46 GMT]]></title><description><![CDATA[<p>Hallo Leute, folgende Frage bei z.B.:</p>
<p>MyClass.hpp</p>
<pre><code>class MyClass{

	public: 
	        int x_;

	private: 
            int y_;

};

std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const MyClass&amp; rhs){
   out &lt;&lt; rhs.x &lt;&lt; &quot; &quot; &lt;&lt; rhs.y;
   return out;
}
</code></pre>
<p>Kann ich so den Public und den Private Member schreiben ? Bzw, brauche ich auf den Zugriff für die Private Members noch etwas anderes ?</p>
<p>Und gehört die &quot;Überladung&quot; in die hpp oder die cpp Datei ? Ich hätte Sie &quot;gefühlsmäßig&quot; eigentlich in die cpp gepackt, muss ich sie aber trotzdem inder hpp deklarieren ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447998</guid><dc:creator><![CDATA[cpp_beginner]]></dc:creator><pubDate>Wed, 25 Mar 2015 20:42:46 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Wed, 25 Mar 2015 20:57:11 GMT]]></title><description><![CDATA[<p>cpp_beginner schrieb:</p>
<blockquote>
<p>Kann ich so den Public und den Private Member schreiben ? Bzw, brauche ich auf den Zugriff für die Private Members noch etwas anderes ?</p>
</blockquote>
<p>Warum probierst du es nicht einfach aus? Es gelten die gleichen Regeln, wie überall anders auch. Das ist eine ganz normale Funktion, bloß mit einem ungewöhnlichen Namen. Also: Nein. Die Funktion muss entweder ein friend der Klasse sein oder die Klasse muss irgendeine Art von Schnittstelle zur Verfügung stellen, über die die Funktion die privaten Member ausgeben kann.</p>
<blockquote>
<p>Und gehört die &quot;Überladung&quot; in die hpp oder die cpp Datei ?</p>
</blockquote>
<p>Es gelten die gleichen Regeln, wie überall anders auch. Das ist eine ganz normale Funktion, bloß mit einem ungewöhnlichen Namen. Daher gelten auch die gleichen Leitlinien, wo man seine Funktionen warum definieren sollte.</p>
<blockquote>
<p>Ich hätte Sie &quot;gefühlsmäßig&quot; eigentlich in die cpp gepackt, muss ich sie aber trotzdem inder hpp deklarieren ?</p>
</blockquote>
<p>Es gelten die gleichen Regeln, wie überall anders auch. Das ist eine ganz normale Funktion, bloß mit einem ungewöhnlichen Namen. Daher gelten auch die gleichen Leitlinien, wo man seine Funktionen warum deklarieren sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2448001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448001</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 25 Mar 2015 20:57:11 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Wed, 25 Mar 2015 21:29:16 GMT]]></title><description><![CDATA[<pre><code>Warum probierst du es nicht einfach aus?
</code></pre>
<p>Handynutzung / OS ohne IDE <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<blockquote>
<p>Es gelten die gleichen Regeln, wie überall anders auch. Das ist eine ganz normale Funktion, bloß mit einem ungewöhnlichen Namen. Also: Nein. Die Funktion muss entweder ein friend der Klasse sein <strong>oder die Klasse muss irgendeine Art von Schnittstelle zur Verfügung stellen, über die die Funktion die privaten Member ausgeben kann</strong>.</p>
</blockquote>
<p>Ok, das mit friend leuchtet mir ein. Wie ist das andere gemeint ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2448003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448003</guid><dc:creator><![CDATA[beg_offl]]></dc:creator><pubDate>Wed, 25 Mar 2015 21:29:16 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Wed, 25 Mar 2015 21:35:34 GMT]]></title><description><![CDATA[<p>beg_offl schrieb:</p>
<blockquote>
<p>Ok, das mit friend leuchtet mir ein. Wie ist das andere gemeint ?</p>
</blockquote>
<p>So etwas geht auch:</p>
<pre><code>class MyClass
{
private:
  int y_;
public:
  int x_;
  std::ostream&amp; public_printer(std::ostream&amp; out) const
  {
    return out &lt;&lt; x_ &lt;&lt; &quot; &quot; &lt;&lt; y_;  
  }
};

std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const MyClass&amp; rhs)
{
  return rhs.public_printer(out);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2448004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448004</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 25 Mar 2015 21:35:34 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Wed, 25 Mar 2015 21:42:17 GMT]]></title><description><![CDATA[<p>Aaah.. Ok, das leuchtet ein. Werd das morgen mal ausprobieren. Das gefällt mir fast noch besser.</p>
<p>Eine Frage nur, das hab ich davor noch nicht gesehen :</p>
<pre><code>std::ostream&amp; public_printer(std::ostream&amp; out) const
                                                 ^
</code></pre>
<p>Was meint das const und wo kann ich was zu dieser &quot;Signatur&quot; nachlesen.. also nach was muss ich da suchen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2448006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448006</guid><dc:creator><![CDATA[cpp_beg_offl]]></dc:creator><pubDate>Wed, 25 Mar 2015 21:42:17 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Wed, 25 Mar 2015 23:09:35 GMT]]></title><description><![CDATA[<p>cpp_beg_offl schrieb:</p>
<blockquote>
<p>Eine Frage nur, das hab ich davor noch nicht gesehen :</p>
<pre><code>std::ostream&amp; public_printer(std::ostream&amp; out) const
                                                 ^
</code></pre>
<p>Was meint das const und wo kann ich was zu dieser &quot;Signatur&quot; nachlesen.. also nach was muss ich da suchen ?</p>
</blockquote>
<p>Das bedeutet, dass diese Methode kein (non-mutable) Member der Klasse ändern kann und auch keine nicht-const Methoden aufrufen kann. Oder kurz: Diese Methode lässt ein Objekt unverändert. Somit kann man sie auch für Objekte aufrufen, die konstant sind. So wie in diesem Fall das rhs.</p>
<p>Nachzulesen? Das ist Grundlagenstoff, der sollte in jedem guten Buch stehen. Aber mehr als das ,was ich oben geschrieben habe, gibt es dazu nicht zu sagen. Vielleicht ganz allgemein das Stichwort &quot;const correctness&quot;, wo const Methoden eben ein Teil sind, um die const correctness sicher zu stellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2448014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448014</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 25 Mar 2015 23:09:35 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Wed, 25 Mar 2015 23:43:52 GMT]]></title><description><![CDATA[<blockquote>
<p>Aber mehr als das ,was ich oben geschrieben habe, gibt es dazu nicht zu sagen.</p>
</blockquote>
<p>Auch nichts über spezielle Memberfunktionen? Oder thread safety? Den Typ von <code>this</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2448017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448017</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 25 Mar 2015 23:43:52 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Thu, 26 Mar 2015 00:02:39 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Aber mehr als das ,was ich oben geschrieben habe, gibt es dazu nicht zu sagen.</p>
</blockquote>
<p>Auch nichts über spezielle Memberfunktionen? Oder thread safety? Den Typ von <code>this</code> ?</p>
</blockquote>
<p>Wenn du meinst, dass dies dem Threadersteller (oder anderen Lesern) etwas bringt, dann nur zu: Tob dich aus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2448018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448018</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 26 Mar 2015 00:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to Operator &amp;lt;&amp;lt; überladen on Thu, 26 Mar 2015 15:49:17 GMT]]></title><description><![CDATA[<blockquote>
<p>Auch nichts über spezielle Memberfunktionen? Oder thread safety? Den Typ von this?</p>
</blockquote>
<p>Nö, das von SeppJ reicht vollkommen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2448109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2448109</guid><dc:creator><![CDATA[beg_offl]]></dc:creator><pubDate>Thu, 26 Mar 2015 15:49:17 GMT</pubDate></item></channel></rss>