<?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[Konstante Kopie? (bei operator+())]]></title><description><![CDATA[<p>Hey!</p>
<p>Unser C++ Trainer hat den operator+() wie folgt definiert:</p>
<pre><code class="language-cpp">const CBruch operator+(const CBruch&amp;) const;
</code></pre>
<p>Aber wozu einen const CBruch zurückgeben, und nicht einfach CBruch? Stilfrage? Hat doch keine Funktion? (Hab vergessen was der dazu gelabert hat)</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/215361/konstante-kopie-bei-operator</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 11:46:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/215361.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Jun 2008 07:18:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstante Kopie? (bei operator+()) on Tue, 10 Jun 2008 07:18:22 GMT]]></title><description><![CDATA[<p>Hey!</p>
<p>Unser C++ Trainer hat den operator+() wie folgt definiert:</p>
<pre><code class="language-cpp">const CBruch operator+(const CBruch&amp;) const;
</code></pre>
<p>Aber wozu einen const CBruch zurückgeben, und nicht einfach CBruch? Stilfrage? Hat doch keine Funktion? (Hab vergessen was der dazu gelabert hat)</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526148</guid><dc:creator><![CDATA[ceplusplus*loggedoff]]></dc:creator><pubDate>Tue, 10 Jun 2008 07:18:22 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Kopie? (bei operator+()) on Tue, 10 Jun 2008 07:23:52 GMT]]></title><description><![CDATA[<p>Ich frage mich, wie das überhaupt funktionieren soll. Für gewöhnlich definiert man den operator+ global (welcher ein neues Objekt erzeugt) und den operator+= als Methode:</p>
<p><em>Methoden</em></p>
<pre><code class="language-cpp">CBruch&amp; operator+=(CBruch const&amp;);
</code></pre>
<p>Die Rückgabe einer konstanten Referenz ist hier m.E. gänzlich sinnfrei.</p>
<p><em>Funktion</em></p>
<pre><code class="language-cpp">CBruch operator+(CBruch const&amp; left, CBruch const&amp; right)
    {
        CBruch temp = left;
        temp += right; // Hier kommt die Methode zum Tragen
        return temp;
    }
</code></pre>
<p>Grüße... Heiko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526153</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Tue, 10 Jun 2008 07:23:52 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Kopie? (bei operator+()) on Tue, 10 Jun 2008 07:28:21 GMT]]></title><description><![CDATA[<p>Warum + global? Ist doch Schwachsinn?</p>
<pre><code class="language-cpp">const CBruch CBruch::operator+(const CBruch&amp; br) const
{
	CBruch erg;
	erg.z = z * br.n + br.z * n;
	erg.n = n * br.n;
	erg.kuerzen();
	return erg;
}
</code></pre>
<p>Meine Frage wurde trotzdem nicht beantwortet.<br />
MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526160</guid><dc:creator><![CDATA[ceplusplus*loggedoff]]></dc:creator><pubDate>Tue, 10 Jun 2008 07:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Kopie? (bei operator+()) on Tue, 10 Jun 2008 07:34:34 GMT]]></title><description><![CDATA[<p>ceplusplus@loggedoff schrieb:</p>
<blockquote>
<p>Warum + global? Ist doch Schwachsinn?</p>
</blockquote>
<p>Nein, das ist sinnvoll. Damit sind Konvertierungen auch auf dem linken Operanden möglich.</p>
<p>Man macht den Rückgabetyp const, damit man dem +-Ausdruck nichts zuweisen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526163</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 10 Jun 2008 07:34:34 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Kopie? (bei operator+()) on Tue, 10 Jun 2008 07:37:25 GMT]]></title><description><![CDATA[<p>Da CBruch eine Klasse ist, die wiederum den Operator = (-=, /=, +=, ...) überladen haben könnte, könnte man auf die Idee kommen, folgendes zu machen:</p>
<pre><code class="language-cpp">(bruch1 + bruch2) = bruch3
</code></pre>
<p>Das ist mit builtin-Typen nicht möglich. Ist nun der Rückgabetyp von operator+, und damit auch das erzeugte temporäre Objekt, const, ist das nicht mehr möglich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526167</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 10 Jun 2008 07:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Kopie? (bei operator+()) on Tue, 10 Jun 2008 07:44:39 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>ceplusplus@loggedoff schrieb:</p>
<blockquote>
<p>Warum + global? Ist doch Schwachsinn?</p>
</blockquote>
<p>Nein, das ist sinnvoll. Damit sind Konvertierungen auch auf dem linken Operanden möglich.</p>
</blockquote>
<p>Gibst du mir dazu ein Beispiel?</p>
<p>MFK schrieb:</p>
<blockquote>
<p>Man macht den Rückgabetyp const, damit man dem +-Ausdruck nichts zuweisen kann.</p>
</blockquote>
<p>Ahaa ok stimmt, danke! Dachte, das würde nicht gehen weil ein Funktionsaufruf doch kein L-Value ist...</p>
<p>zB.</p>
<pre><code class="language-cpp">int test()
{
	int x = 4;
	return x;
}

int main()
{
	test() = 5;
...
</code></pre>
<p>error C2106: '=': Linker Operand muss ein L-Wert sein</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526173</guid><dc:creator><![CDATA[ceplusplus*loggedoff]]></dc:creator><pubDate>Tue, 10 Jun 2008 07:44:39 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Kopie? (bei operator+()) on Tue, 10 Jun 2008 07:47:49 GMT]]></title><description><![CDATA[<p>ceplusplus@loggedoff schrieb:</p>
<blockquote>
<p>Gibst du mir dazu ein Beispiel?</p>
</blockquote>
<p>Angenommen, deine CBruch-Klasse hat einen Konstrukor für int. Wenn du dann nur einen Member-Operator+ hast, geht zwar</p>
<pre><code class="language-cpp">CBruch a;
int b;
CBruch x = a + b;
</code></pre>
<p>aber nicht</p>
<pre><code class="language-cpp">CBruch x = b + a;
</code></pre>
<p>Mit einem globalen Operator geht beides.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526176</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 10 Jun 2008 07:47:49 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Kopie? (bei operator+()) on Tue, 10 Jun 2008 07:50:33 GMT]]></title><description><![CDATA[<p>Ah stimmt, sorry, danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526178</guid><dc:creator><![CDATA[ceplusplus*loggedoff]]></dc:creator><pubDate>Tue, 10 Jun 2008 07:50:33 GMT</pubDate></item></channel></rss>