<?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[2 typen von Operator Overloading]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hätte noch eine Frage zu operator overloading und zwar habe ich gelesen, dass es 2 Arten von operator overloading gibt,<br />
weiß jemand welche 2 das sind und was die Unterschiede bei diesen beiden sind?</p>
<p>lg und vielen Dank für die Antworten,</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203371/2-typen-von-operator-overloading</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 11:00:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203371.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Jan 2008 05:06:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2 typen von Operator Overloading on Tue, 22 Jan 2008 05:06:21 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hätte noch eine Frage zu operator overloading und zwar habe ich gelesen, dass es 2 Arten von operator overloading gibt,<br />
weiß jemand welche 2 das sind und was die Unterschiede bei diesen beiden sind?</p>
<p>lg und vielen Dank für die Antworten,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441019</guid><dc:creator><![CDATA[PollerCPP]]></dc:creator><pubDate>Tue, 22 Jan 2008 05:06:21 GMT</pubDate></item><item><title><![CDATA[Reply to 2 typen von Operator Overloading on Tue, 22 Jan 2008 07:00:45 GMT]]></title><description><![CDATA[<p>Du kannst einen Operator entweder als freie (globale) Funktion oder als Methode einer Klasse überladen.</p>
<p>Umsetzung als Methode:</p>
<pre><code class="language-cpp">class test
{
public:
  test&amp; operator+=(const test&amp; other); // der erste Operand wird als this-Objekt übergeben, der zweite als Parameter
  test&amp; operator!();                   // der (einzige) Operand wird als this-Objekt übergeben
};
</code></pre>
<p>Vorteile Methode:</p>
<ul>
<li>Hat unmittelbar Zugriff auf die Klasseninterna (freie Funktionen brauchen 'friend' oder müssen über die öffentliche Schnittstelle gehen).</li>
<li>kann virtuell sein</li>
<li>einige Operatoren (afaik =, [], (), *, -&gt;) <strong>müssen</strong> als Methode überladen werden</li>
</ul>
<p>Umsetzung als globale Funktion:</p>
<pre><code class="language-cpp">class test
{
  ...
};

test operator+(const test&amp; left,const test&amp; right); // beide Operanden werden als Parameter übergeben
test operator-(const test&amp; op);                     // der (einzige) Operand wird als Parameter übergeben
</code></pre>
<p>Vorteile Funktion:</p>
<ul>
<li>Der Compiler kann auch für den linken/einizgen Operanden Typumwandlungen vornehmen (bei der Methode muß der Typ exakt stimmen)</li>
<li>sind auch möglich, wenn du keinen Zugriff auf die Definition des linken/einzigen Parametertypen hast (z.B. std-Klassen (der Klassiker sind die IO-Operatoren) oder Build-in Typen<sup>*</sup>)</li>
</ul>
<p><sup>*</sup> wobei man für die Build-in Typen die unären Operatoren nicht überladen kann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441035</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 22 Jan 2008 07:00:45 GMT</pubDate></item></channel></rss>