<?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[Überladung von Postfix-++]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade am Überlegen. Fällt irgendjemandem ein Grund ein, den Postfix-++ Operator in einer Klasse anders zu implementieren als im folgenden Code:</p>
<pre><code class="language-cpp">T operator ++(int)
{
    T tmp  = this;
    ++this;
    return tmp;
}
</code></pre>
<p>Letztendlich geht es darum, dass dass ich mir überlege, ob es in einer &quot;neuen&quot; Sprache sinnvoll wäre, die Überladung des Postfix-++-Operators überhaupt anzubieten oder ob er immer aus dem Präfix-++ impliziert werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162630/überladung-von-postfix</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 16:46:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162630.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Oct 2006 16:21:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überladung von Postfix-++ on Fri, 20 Oct 2006 16:21:08 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade am Überlegen. Fällt irgendjemandem ein Grund ein, den Postfix-++ Operator in einer Klasse anders zu implementieren als im folgenden Code:</p>
<pre><code class="language-cpp">T operator ++(int)
{
    T tmp  = this;
    ++this;
    return tmp;
}
</code></pre>
<p>Letztendlich geht es darum, dass dass ich mir überlege, ob es in einer &quot;neuen&quot; Sprache sinnvoll wäre, die Überladung des Postfix-++-Operators überhaupt anzubieten oder ob er immer aus dem Präfix-++ impliziert werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158455</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Fri, 20 Oct 2006 16:21:08 GMT</pubDate></item><item><title><![CDATA[Reply to Überladung von Postfix-++ on Fri, 20 Oct 2006 17:25:36 GMT]]></title><description><![CDATA[<blockquote>
<p>Fällt irgendjemandem ein Grund ein, den Postfix-++ Operator in einer Klasse anders zu implementieren</p>
</blockquote>
<p>Nein, wieso auch?</p>
<p>Allerdings würd ich ihn doch eher so implementieren:</p>
<pre><code class="language-cpp">T operator ++(int)
{
    T tmp  = *this;
    ++this;
    return tmp;
}
</code></pre>
<p><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>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158460</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Fri, 20 Oct 2006 17:25:36 GMT</pubDate></item><item><title><![CDATA[Reply to Überladung von Postfix-++ on Sat, 21 Oct 2006 05:55:45 GMT]]></title><description><![CDATA[<p>Ich hingegen würde ihn dann doch so implementieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<pre><code class="language-cpp">T operator ++(int)
{
    T tmp = *this;
    ++*this;
    return tmp;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1158515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158515</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Sat, 21 Oct 2006 05:55:45 GMT</pubDate></item><item><title><![CDATA[Reply to Überladung von Postfix-++ on Sat, 21 Oct 2006 09:06:48 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Ich hingegen würde ihn dann doch so implementieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<pre><code class="language-cpp">T operator ++(int)
{
    T tmp = *this;
    ++*this;
    return tmp;
}
</code></pre>
</blockquote>
<p>Tatsache... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1158549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158549</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sat, 21 Oct 2006 09:06:48 GMT</pubDate></item><item><title><![CDATA[Reply to Überladung von Postfix-++ on Sat, 21 Oct 2006 12:05:25 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Nein, wieso auch?</p>
</blockquote>
<p>Weil ich mich dann darüber wundere, dass die Möglichkeit in C++ überhaupt vorhanden ist. Immerhin musste dazu zu einer IMHO sehr unschönen Krücke gegriffen werden, um durch unterschiedliche Signaturen sicherzustellen, dass die beiden Methoden unterschieden werden können (das wundert mich sowieso, das hätte man schöner lösen können).</p>
<p>David_pb schrieb:</p>
<blockquote>
<p>Allerdings würd ich ihn doch eher so implementieren:</p>
</blockquote>
<p>Klar. <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="🙂"
    /> Ist mir gestern auch schon aufgefallen aber die Forensoftware hat mich nicht mehr reingelassen um das zu ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158660</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sat, 21 Oct 2006 12:05:25 GMT</pubDate></item><item><title><![CDATA[Reply to Überladung von Postfix-++ on Sat, 21 Oct 2006 12:21:48 GMT]]></title><description><![CDATA[<p>Glaubst du so Sachen wie<br />
T temp(*this); ++*this; return temp;</p>
<p>fallen den Leuten am 1. Tag ein?</p>
<p>abgesehen davon gibt es natuerlich gruende warum ich das nicht so implementieren will: ich mache kopieren ueber den copyctor. und zwar 2 mal.</p>
<p>Das ist nicht immer das gewuenschte, zB koennte man <a href="http://www.ddj.com/dept/cpp/184403855" rel="nofollow">Mojo</a> implementieren wollen.</p>
<p>Oder ganz simpel: einen counter mitlaufen lassen. Oder zB fuer optimierung ein proxy objekt zurueck geben das schaut ob der wert hier ueberhaupt gebraucht wird und ein preinc nicht besser gewesen waere.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158673</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sat, 21 Oct 2006 12:21:48 GMT</pubDate></item><item><title><![CDATA[Reply to Überladung von Postfix-++ on Sun, 22 Oct 2006 11:51:31 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>abgesehen davon gibt es natuerlich gruende warum ich das nicht so implementieren will: ich mache kopieren ueber den copyctor. und zwar 2 mal.</p>
</blockquote>
<p>Nun ja ... Kopie Nummer eins lässt sich aber IMHO nicht vermeiden, wenn man nicht die Semantik verfälschen möchte. D.h. hier ist nicht viel Argumentationsspielraum, hier muss einfach kopiert werden (oder übersehe ich hier etwas?).</p>
<p>Die zweite Kopie kann leicht vermieden werden, indem der Code ge-inlined wird.</p>
<p>Letztendlich ging es mir in der Frage ja auch nicht um C++ sondern um eine (fiktive) neue Sprache, in der temporäre Objekte evtl. kein Problem darstellen.</p>
<blockquote>
<p>Oder ganz simpel: einen counter mitlaufen lassen. Oder zB fuer optimierung ein proxy objekt zurueck geben das schaut ob der wert hier ueberhaupt gebraucht wird und ein preinc nicht besser gewesen waere.</p>
</blockquote>
<p>Hmm. Sind das reelle Szenarien? Oder kann man nicht vielmehr annehmen, dass all diese Codes &quot;symmetrisch sind&quot;, d.h. dass es reichen würde, sie in Präfix-++ zu implementieren und dann übernehmen zu lassen?</p>
<p>Blick über den Tellerrand: C# impliziert den Postfix-++-Operator. Allerdings wird hierbei keine Kopie erstellt (die Sprache kennt ja auch keine copycon-Semantik), wenn es sich um eine Klasse handelt (nur bei einer Struct). Vielmehr muss man in der Überladung von Präfix-++ manuell eine Kopie erstellen, wodurch C# eine andere Semantik erhält als C++.<br />
Dass C# es so macht, reicht mir aber eigentlich nicht aus, denn in der Sprachdefinition wurden Designentscheidungen nicht begründet.</p>
<p>(Evtl. ist das langsam keine C++-Frage mehr und hat hier nix zu suchen. Tut mir leid.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159012</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 22 Oct 2006 11:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to Überladung von Postfix-++ on Sun, 22 Oct 2006 12:57:55 GMT]]></title><description><![CDATA[<p>einen postfix operator automatisch so zu ueberladen wie hier gezeigt, passt schon. Das ist in 99% der faelle genau das was man will.</p>
<p>ich habe mich eher auf<br />
&quot;Weil ich mich dann darüber wundere, dass die Möglichkeit in C++ überhaupt vorhanden ist&quot;<br />
bezogen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159047</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 22 Oct 2006 12:57:55 GMT</pubDate></item></channel></rss>