<?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 Rückgabetyp]]></title><description><![CDATA[<p>Hallo,<br />
ich habe nochmal eine Frge zu der Operntorüberladung.</p>
<p>Und zwar wurde hier zuerst der += Operator überladen.</p>
<p>Dann dieser:</p>
<pre><code class="language-cpp">template&lt;class T&gt;
MathVektor&lt;T&gt; operator*(const T&amp; zahl. const MathVektor&lt;T&gt; v) {
   MathVektor&lt;T&gt; temp=v;
   return temp*=zahl;
}
</code></pre>
<p>dann dieser:</p>
<pre><code class="language-cpp">template &lt;class T&gt;
MathVektor&lt;T&gt; operator*(const MathVektor&lt;T&gt;&amp; v, const T&amp; Zahl) {
   return zahl*v;
}
</code></pre>
<p>Erstmal, da hier nicht geschrieben wurde:<br />
[/cpp]MathVektor&lt;T&gt; MathVektor&lt;T&gt;::operator*(...)[cpp]</p>
<p>Muss diese Definition ja in der Klasse direkt erfolgt sein, oder?</p>
<p>Dann wieso wird bei der 2. von mir geposteten Überladung der Wert nicht als Referenz zurückgegeben. Beim ersten ist das ja wegen dem temporärem Objekt klar. Aber wieso ist das hier so.</p>
<p>Viele Grüße</p>
<p>Edit: Titel korrigiert</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263179/operator-rückgabetyp</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 01:28:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263179.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Mar 2010 21:49:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operator Rückgabetyp on Tue, 16 Mar 2010 22:01:09 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe nochmal eine Frge zu der Operntorüberladung.</p>
<p>Und zwar wurde hier zuerst der += Operator überladen.</p>
<p>Dann dieser:</p>
<pre><code class="language-cpp">template&lt;class T&gt;
MathVektor&lt;T&gt; operator*(const T&amp; zahl. const MathVektor&lt;T&gt; v) {
   MathVektor&lt;T&gt; temp=v;
   return temp*=zahl;
}
</code></pre>
<p>dann dieser:</p>
<pre><code class="language-cpp">template &lt;class T&gt;
MathVektor&lt;T&gt; operator*(const MathVektor&lt;T&gt;&amp; v, const T&amp; Zahl) {
   return zahl*v;
}
</code></pre>
<p>Erstmal, da hier nicht geschrieben wurde:<br />
[/cpp]MathVektor&lt;T&gt; MathVektor&lt;T&gt;::operator*(...)[cpp]</p>
<p>Muss diese Definition ja in der Klasse direkt erfolgt sein, oder?</p>
<p>Dann wieso wird bei der 2. von mir geposteten Überladung der Wert nicht als Referenz zurückgegeben. Beim ersten ist das ja wegen dem temporärem Objekt klar. Aber wieso ist das hier so.</p>
<p>Viele Grüße</p>
<p>Edit: Titel korrigiert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1870103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1870103</guid><dc:creator><![CDATA[Noob12345]]></dc:creator><pubDate>Tue, 16 Mar 2010 22:01:09 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Rückgabetyp on Tue, 16 Mar 2010 22:02:57 GMT]]></title><description><![CDATA[<p>1. Nein, die Definition muss nicht im Klassenkörper stehen. Der Operator kann und sollte sogar als freie Funktion definiert werden (siehe <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-232010.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-232010.html</a>).</p>
<p>2. Hier gibst du auch eine temporäre Variable zurück, auch wenn sie sich etwas versteckt hat:</p>
<pre><code class="language-cpp">template &lt;class T&gt;
MathVektor&lt;T&gt; operator*(const MathVektor&lt;T&gt;&amp; v, const T&amp; Zahl) {
   return operator*(zahl, v);    // op* gibt ein MathVektor&lt;T&gt; per value zurück
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1870108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1870108</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 16 Mar 2010 22:02:57 GMT</pubDate></item></channel></rss>