<?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; Überladen]]></title><description><![CDATA[<p>Eigene Ausgabefunktion:</p>
<pre><code class="language-cpp">ostream&amp; meineKlasse::meineAusgabe(ostream&amp; Stream) 
{
	Stream&lt;&lt;private_a;
        Stream&lt;&lt;private_b;
	return Stream;
}
</code></pre>
<p>Überladen:</p>
<pre><code class="language-cpp">ostream&amp; operator&lt;&lt;(ostream&amp; Stream, meineKlasse&amp; x) 
{
	x.meineAusgabe(Stream);
	return Stream;
}
</code></pre>
<p>1. Mir ist die Herangehensweise nicht ganz klar. Meine Idee (bin mir aber unsicher): Der Ausgabeoperator wird außerhalb der Klasse überladen, da der erste Operand kein Element der Klasse ist. Problem: Zugriff auf private Data Member nicht möglich und deshalb schreibe ich eine eigene Klassenmethode zur Ausgabe!?</p>
<p>2. Verstehe ich die eigene Ausgabefunktion nicht. Das fängt schon beim Rückgabewert an (Ostream Referenz). Was ist das eigentlich für ein Datentyp?<br />
Der erste Paramter ist ja der this Zeiger, der zweite ist mir dann wieder unklar. Es wäre nett wenn jemand nen paar Worte drüber verlieren könnte.</p>
<p>Vielen Dank für die Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/295296/lt-lt-überladen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 12:01:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295296.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Nov 2011 19:13:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Thu, 10 Nov 2011 19:13:47 GMT]]></title><description><![CDATA[<p>Eigene Ausgabefunktion:</p>
<pre><code class="language-cpp">ostream&amp; meineKlasse::meineAusgabe(ostream&amp; Stream) 
{
	Stream&lt;&lt;private_a;
        Stream&lt;&lt;private_b;
	return Stream;
}
</code></pre>
<p>Überladen:</p>
<pre><code class="language-cpp">ostream&amp; operator&lt;&lt;(ostream&amp; Stream, meineKlasse&amp; x) 
{
	x.meineAusgabe(Stream);
	return Stream;
}
</code></pre>
<p>1. Mir ist die Herangehensweise nicht ganz klar. Meine Idee (bin mir aber unsicher): Der Ausgabeoperator wird außerhalb der Klasse überladen, da der erste Operand kein Element der Klasse ist. Problem: Zugriff auf private Data Member nicht möglich und deshalb schreibe ich eine eigene Klassenmethode zur Ausgabe!?</p>
<p>2. Verstehe ich die eigene Ausgabefunktion nicht. Das fängt schon beim Rückgabewert an (Ostream Referenz). Was ist das eigentlich für ein Datentyp?<br />
Der erste Paramter ist ja der this Zeiger, der zweite ist mir dann wieder unklar. Es wäre nett wenn jemand nen paar Worte drüber verlieren könnte.</p>
<p>Vielen Dank für die Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143037</guid><dc:creator><![CDATA[Gast21]]></dc:creator><pubDate>Thu, 10 Nov 2011 19:13:47 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Thu, 10 Nov 2011 19:24:42 GMT]]></title><description><![CDATA[<p>1. Benutze friend oder eine public-Ausgabefunktion die du dann im Operator aufrufst.<br />
2. Nun, eine ostream-Referenz hat den Typ ostream-Referenz. Mir ist die Frage nicht klar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143050</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 10 Nov 2011 19:24:42 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Thu, 10 Nov 2011 19:41:44 GMT]]></title><description><![CDATA[<p>Laut Aufgabenstellung darf dieses leider nicht benutzt werden (sorry vergessen zu posten). Ist mein Gedankengang denn richtig wenn friend verboten ist? Funktionieren tut es ja so auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143060</guid><dc:creator><![CDATA[Gast21]]></dc:creator><pubDate>Thu, 10 Nov 2011 19:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Fri, 11 Nov 2011 09:55:37 GMT]]></title><description><![CDATA[<p>Gast21 schrieb:</p>
<blockquote>
<p>1. Mir ist die Herangehensweise nicht ganz klar. Meine Idee (bin mir aber unsicher): Der Ausgabeoperator wird außerhalb der Klasse überladen, da der erste Operand kein Element der Klasse ist.</p>
</blockquote>
<p>Du meinst &quot;Objekt&quot; oder &quot;Instanz&quot;, nicht &quot;Element&quot;. Elemente einer Klasse sind die Dinger, die Du in der Klasse deklarierst.</p>
<p>Gast21 schrieb:</p>
<blockquote>
<p>Problem: Zugriff auf private Data Member nicht möglich und deshalb schreibe ich eine eigene Klassenmethode zur Ausgabe!?</p>
</blockquote>
<p>Du meinst &quot;Objektmethode&quot; statt &quot;Klassenmethode&quot;. Ja, der Ansatz ist ja völlig okay.</p>
<p>Gast21 schrieb:</p>
<blockquote>
<p>2. Verstehe ich die eigene Ausgabefunktion nicht. Das fängt schon beim Rückgabewert an (Ostream Referenz). Was ist das eigentlich für ein Datentyp?<br />
Der erste Paramter ist ja der this Zeiger, der zweite ist mir dann wieder unklar.</p>
</blockquote>
<p>Das ist eine freie Funktion. Da gibt's kein &quot;this&quot;. operator&lt;&lt; als freie Funktion bekommt als ersten Parameter das, was link von &lt;&lt; steht und als zweiten Parameter das, was rechts von &lt;&lt; steht. Das Ergebnis davon sollte sich wieder auf das stream-Objekt beziehen, so dass du &lt;&lt; beispielsweise nochmal anwenden kannst:</p>
<pre><code>stream &lt;&lt; a &lt;&lt; b;
ist äquiv zu
  (stream &lt;&lt; a) &lt;&lt; b;
</code></pre>
<p>da &lt;&lt; links assoziativ ist. Damit Du auch noch b ausgeben kannst, muss das Ergebnis von stream&lt;&lt;a sich auf das std::ostream-Objekt beziehen. Daher gibt operator&lt;&lt; eine Referenz auf das Objekt zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143172</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 11 Nov 2011 09:55:37 GMT</pubDate></item></channel></rss>