<?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[Operatoren überladen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Frage zum Thema Operatoren überladen.</p>
<p>Angenommen es gibt zwei Klassen A und B, B erbt von A.</p>
<pre><code>A operator+(A &amp;sum){
//addiere die Member
}
</code></pre>
<pre><code>A a1,a2
B b1 b2;
a2=a1+b1;  // Funktioniert  
a2=b1+a1;  // Funktioniert nicht
</code></pre>
<p>Bei der ersten Addition ist es möglich als Parameter ein Objekt vom Typ B zu übergeben. Wieso klappt das im Fall der zweiten Addition nicht? Der erste Operand wird dadurch bestimmt zu welcher Klasse die Funktion gehört. Wieso aber kann da nicht auch ein Objekt von Typ B übergeben werden? Ich kann es hinnehmen, aber sehe dahinter erstmal keinen Sinn darin, es nicht auch hier zu erlauben. Kann mir jemand mit dieser Frage helfen?</p>
<p>Grüße,<br />
Erano1</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/339401/operatoren-überladen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 04:23:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/339401.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 27 Aug 2016 14:44:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operatoren überladen on Sat, 27 Aug 2016 14:44:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Frage zum Thema Operatoren überladen.</p>
<p>Angenommen es gibt zwei Klassen A und B, B erbt von A.</p>
<pre><code>A operator+(A &amp;sum){
//addiere die Member
}
</code></pre>
<pre><code>A a1,a2
B b1 b2;
a2=a1+b1;  // Funktioniert  
a2=b1+a1;  // Funktioniert nicht
</code></pre>
<p>Bei der ersten Addition ist es möglich als Parameter ein Objekt vom Typ B zu übergeben. Wieso klappt das im Fall der zweiten Addition nicht? Der erste Operand wird dadurch bestimmt zu welcher Klasse die Funktion gehört. Wieso aber kann da nicht auch ein Objekt von Typ B übergeben werden? Ich kann es hinnehmen, aber sehe dahinter erstmal keinen Sinn darin, es nicht auch hier zu erlauben. Kann mir jemand mit dieser Frage helfen?</p>
<p>Grüße,<br />
Erano1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2506789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2506789</guid><dc:creator><![CDATA[Erano1]]></dc:creator><pubDate>Sat, 27 Aug 2016 14:44:12 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen on Sat, 27 Aug 2016 15:08:11 GMT]]></title><description><![CDATA[<p>Überlade doppelseitige Operatoren nicht als Klassenmember, sondern als freie Funktionen. Dann funktioniert das. Siehe auch:<br />
<a href="https://www.c-plusplus.net/forum/232010">https://www.c-plusplus.net/forum/232010</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2506793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2506793</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 27 Aug 2016 15:08:11 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen on Sun, 28 Aug 2016 06:17:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>vielen Dank, deine Antwort hat mir sehr geholfen. Also ist es allgemein gute Praxis die Operatoren in solchen Fällen nicht als Klassenmember zu überladen?</p>
<p>Grüße,<br />
Erano1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2506840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2506840</guid><dc:creator><![CDATA[Erano1]]></dc:creator><pubDate>Sun, 28 Aug 2016 06:17:28 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen on Sun, 28 Aug 2016 06:46:55 GMT]]></title><description><![CDATA[<p>Kommt drauf an, was du nach Lesen des verlinkten Artikels (du hast ihn doch hoffentlich gelesen?) unter &quot;solchen Fällen&quot; verstehst. Da wird das doch recht deutlich erklärt.</p>
<p>Wenn du darunter verstehst, dass, wenn immer du einen Operator mit zwei gleichartigen Seiten hast (also zum Beispiel Addition, aber nicht Zuweisung), du ihn als freie Funktion implementieren solltest, dann Ja.</p>
<p>Falls du irgendetwas anderes meinen solltest: Nein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2506842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2506842</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 28 Aug 2016 06:46:55 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen on Sun, 28 Aug 2016 07:38:52 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Wenn du darunter verstehst, dass, wenn immer du einen Operator mit zwei gleichartigen Seiten hast (also zum Beispiel Addition, aber nicht Zuweisung), du ihn als freie Funktion implementieren solltest, dann Ja.</p>
</blockquote>
<p>Darauf wollte ich hinaus, danke <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>
<p>Grüße,Erano1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2506843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2506843</guid><dc:creator><![CDATA[Erano1]]></dc:creator><pubDate>Sun, 28 Aug 2016 07:38:52 GMT</pubDate></item></channel></rss>