<?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[Notwendigkeit von const bei überladener Ausgabe?]]></title><description><![CDATA[<p>Hi @ all! <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="🙂"
    /><br />
Ich möchte den Ausgabeoperator so überladen, daß er die Objekte meiner selbst geschrieben Klasse Matrix ausgeben kann. Nun glaube ich mich dunkel daran zu erinnern, daß ich meiner Operatorfunktion die auszugebende Matrix als const übergeben muß, da es sonst in manchen Fällen zu Problemen kommen kann.<br />
Also etwa so:</p>
<pre><code class="language-cpp">ostream&amp; operator &lt;&lt;(ostream&amp; os,const Matrix&amp; M)
{...}
</code></pre>
<p>Ist irgendjemandem bekannt, in welchen Fällen ohne const Probleme auftreten können bzw. warum diese dann auftreten? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/135180/notwendigkeit-von-const-bei-überladener-ausgabe</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 21:26:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/135180.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 31 Jan 2006 13:21:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Notwendigkeit von const bei überladener Ausgabe? on Tue, 31 Jan 2006 13:21:25 GMT]]></title><description><![CDATA[<p>Hi @ all! <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="🙂"
    /><br />
Ich möchte den Ausgabeoperator so überladen, daß er die Objekte meiner selbst geschrieben Klasse Matrix ausgeben kann. Nun glaube ich mich dunkel daran zu erinnern, daß ich meiner Operatorfunktion die auszugebende Matrix als const übergeben muß, da es sonst in manchen Fällen zu Problemen kommen kann.<br />
Also etwa so:</p>
<pre><code class="language-cpp">ostream&amp; operator &lt;&lt;(ostream&amp; os,const Matrix&amp; M)
{...}
</code></pre>
<p>Ist irgendjemandem bekannt, in welchen Fällen ohne const Probleme auftreten können bzw. warum diese dann auftreten? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/981995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/981995</guid><dc:creator><![CDATA[FFlex]]></dc:creator><pubDate>Tue, 31 Jan 2006 13:21:25 GMT</pubDate></item><item><title><![CDATA[Reply to Notwendigkeit von const bei überladener Ausgabe? on Tue, 31 Jan 2006 13:27:15 GMT]]></title><description><![CDATA[<p>Wenn eine Funktion einen NichtConst Parameter erwartet, dann schließt sie damit nicht explizit aus, dass die Variable verändert wird innerhalb der Funktion.</p>
<p>Also kannst du so einer Funktion keine konstanten Variablen übergeben, denn die dürfen ja nicht verändert werden.<br />
Andersrum ist es aber egal, denn wenn die Funktion sagt, die Variable werde nicht verändert (const Parameter), dann stört es ja den Compiler nicht, wenn eine Variable übergeben wird, die verändert werden dürfte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/982007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/982007</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 31 Jan 2006 13:27:15 GMT</pubDate></item><item><title><![CDATA[Reply to Notwendigkeit von const bei überladener Ausgabe? on Tue, 31 Jan 2006 13:28:55 GMT]]></title><description><![CDATA[<p>Probleme kannst du bekommen, wenn du dem Operator (mit &quot;Matrix&amp; m&quot;)eine konstante Matrix oder ein temporäres Objekt übergeben willst - die können nämlich nicht in eine nichtkonstante Referenz umgewandelt werden.<br />
(umgekehrt hast du keine Probleme, eine nichtkonstante Matrix an einen &quot;const Matrix&amp; m&quot; weiterzureichen).</p>
<pre><code class="language-cpp">ostream&amp; operator&lt;&lt;(ostream out, MAtrix&amp; m) {...}
Matrix operator+(const Matrix&amp; r,const Matrix&amp; l) {...}

Matrix m1,m2;
const Matrix m3=...;

cout&lt;&lt;m3;//const auf nicht-const - geht nicht
cout&lt;&lt;m1+m2;//temporäres Objekt auf nicht-const - geht nicht
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/982010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/982010</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Tue, 31 Jan 2006 13:28:55 GMT</pubDate></item><item><title><![CDATA[Reply to Notwendigkeit von const bei überladener Ausgabe? on Tue, 31 Jan 2006 15:47:55 GMT]]></title><description><![CDATA[<p>Danke! <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="👍"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/982194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/982194</guid><dc:creator><![CDATA[FFlex]]></dc:creator><pubDate>Tue, 31 Jan 2006 15:47:55 GMT</pubDate></item></channel></rss>