<?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[Unäre Operatoren Überladen]]></title><description><![CDATA[<p>Hallo,<br />
ich habe gerade mal ein wenig zur Überladung unärer Operatoren gelesen. Dabei bin ich auf folgende Beispiele gestoßen:</p>
<pre><code class="language-cpp">myComplex operator-() const {
    return myComplex(-_real, -_image );
}
</code></pre>
<p>Hätte man das nicht gleich so schreiben können:</p>
<pre><code class="language-cpp">myComplex&amp; operator-() {
    -_real;
    -_image;
    return *this;
}
</code></pre>
<p>Und beim increment Operator muss ich ja die pre und postfix Variante implementieren. Man nutzt ja bei der Postfix Variante ein dummy Argument, dass der Compiler die Methoden auseinander halten kann. Aber woher weis der Comiler, dass die Methode mit dem Dummy Argument die Postfix Variante seien soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/257553/unäre-operatoren-überladen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 04:33:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/257553.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Dec 2009 12:42:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unäre Operatoren Überladen on Wed, 30 Dec 2009 12:42:45 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe gerade mal ein wenig zur Überladung unärer Operatoren gelesen. Dabei bin ich auf folgende Beispiele gestoßen:</p>
<pre><code class="language-cpp">myComplex operator-() const {
    return myComplex(-_real, -_image );
}
</code></pre>
<p>Hätte man das nicht gleich so schreiben können:</p>
<pre><code class="language-cpp">myComplex&amp; operator-() {
    -_real;
    -_image;
    return *this;
}
</code></pre>
<p>Und beim increment Operator muss ich ja die pre und postfix Variante implementieren. Man nutzt ja bei der Postfix Variante ein dummy Argument, dass der Compiler die Methoden auseinander halten kann. Aber woher weis der Comiler, dass die Methode mit dem Dummy Argument die Postfix Variante seien soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829765</guid><dc:creator><![CDATA[++--]]></dc:creator><pubDate>Wed, 30 Dec 2009 12:42:45 GMT</pubDate></item><item><title><![CDATA[Reply to Unäre Operatoren Überladen on Wed, 30 Dec 2009 13:16:51 GMT]]></title><description><![CDATA[<p>Wenn du beim 2. Beispiel &quot;--_real&quot; meinst, dann würde diese Funktion ja das this-Objekt ändern, während die erste Version ein neues myComplex-Objekt erzeugt.</p>
<p>Und der Compiler ruft bei einem Postfix (x++) intern einfach &quot;operator++(0)&quot; (oder mit einer beliebigen anderen Zahl) auf - und bei einem Prefix (++x) eben operator++().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829794</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 30 Dec 2009 13:16:51 GMT</pubDate></item><item><title><![CDATA[Reply to Unäre Operatoren Überladen on Wed, 30 Dec 2009 13:20:15 GMT]]></title><description><![CDATA[<p>++-- schrieb:</p>
<blockquote>
<p>Hallo,<br />
ich habe gerade mal ein wenig zur Überladung unärer Operatoren gelesen. Dabei bin ich auf folgende Beispiele gestoßen:</p>
<pre><code class="language-cpp">myComplex operator-() const {
    return myComplex(-_real, -_image );
}
</code></pre>
<p>Hätte man das nicht gleich so schreiben können:</p>
<pre><code class="language-cpp">myComplex&amp; operator-() {
    -_real;
    -_image;
    return *this;
}
</code></pre>
</blockquote>
<p>Was machen denn deiner Meinung nach diese Ausdrücke?</p>
<pre><code class="language-cpp">-_real;
    -_image;
</code></pre>
<p>Der Wert von _real und _image ändert sich hier nicht.</p>
<p>Und was das Ändern und Zurückgeben vonthis angeht: Keine gute Idee, da es nicht die erwartete Semantik erfüllt, das Objekt zu ändern, vor dem ein - steht. Angenommen int würde sich so verhalten, dann würde sowas passieren:</p>
<pre><code class="language-cpp">int i=6;
cout &lt;&lt; -i;  // i ist nun -6
</code></pre>
<blockquote>
<p>Und beim increment Operator muss ich ja die pre und postfix Variante implementieren. Man nutzt ja bei der Postfix Variante ein dummy Argument, dass der Compiler die Methoden auseinander halten kann. Aber woher weis der Comiler, dass die Methode mit dem Dummy Argument die Postfix Variante seien soll?</p>
</blockquote>
<p><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="😕"
    /> Weil die Variante mit dem Dummy Argument die Postfix Variante sein soll!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829795</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 30 Dec 2009 13:20:15 GMT</pubDate></item><item><title><![CDATA[Reply to Unäre Operatoren Überladen on Wed, 30 Dec 2009 14:09:26 GMT]]></title><description><![CDATA[<p>Ist das so festgelegt, das mit Dummy Argument die Postfix Variante gemeint ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829831</guid><dc:creator><![CDATA[++--]]></dc:creator><pubDate>Wed, 30 Dec 2009 14:09:26 GMT</pubDate></item><item><title><![CDATA[Reply to Unäre Operatoren Überladen on Wed, 30 Dec 2009 14:10:18 GMT]]></title><description><![CDATA[<p>++-- schrieb:</p>
<blockquote>
<p>Ist das so festgelegt, das mit Dummy Argument die Postfix Variante gemeint ist?</p>
</blockquote>
<p>Ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829832</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829832</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 30 Dec 2009 14:10:18 GMT</pubDate></item></channel></rss>