<?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[Überladen des ++-Operators]]></title><description><![CDATA[<p>Hallo,<br />
hier ist einmal der Code, bei dem ich ein Verständnisproblem habe:</p>
<pre><code>#include &lt;iostream&gt;
    #include &lt;string&gt;
    using namespace std;
    class Uno {
            int val;
    public: Uno(int x) { val = x; }
            int out() { return val; }

            void operator++(int var) {
                val += val;
            }
    };
    ostream &amp;operator&lt;&lt;(ostream &amp;o, Uno u)
    {
        return o &lt;&lt; u.out();
    }

    int main()
    {
            Uno i(2);
            i++;
            cout &lt;&lt; i;
            return 0;
    }
</code></pre>
<p>Es geht um</p>
<pre><code>void operator++(int var) {
                val += val;
            }
</code></pre>
<p>Der Inkrement-Operator ++ ist ja ein unärer Operator. Ich verstehe nicht, wieso dann noch ein Parameter var übergeben wird? Ein Parameter bei einer Operatorüberladung kenne ich nur bei binären Operatorenüberladungen. Vorallendingen spielt der Paramater var in der Funktion keine Rolle. Weglassen kann ich den Parameter auch nicht, weil der Compiler dann meckert. Die Fehlermedung bezieht sich dann auf i++.<br />
Bin da ratlos. <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/324072/überladen-des-operators</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 02:12:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/324072.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 02 Mar 2014 08:27:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überladen des ++-Operators on Sun, 02 Mar 2014 08:27:52 GMT]]></title><description><![CDATA[<p>Hallo,<br />
hier ist einmal der Code, bei dem ich ein Verständnisproblem habe:</p>
<pre><code>#include &lt;iostream&gt;
    #include &lt;string&gt;
    using namespace std;
    class Uno {
            int val;
    public: Uno(int x) { val = x; }
            int out() { return val; }

            void operator++(int var) {
                val += val;
            }
    };
    ostream &amp;operator&lt;&lt;(ostream &amp;o, Uno u)
    {
        return o &lt;&lt; u.out();
    }

    int main()
    {
            Uno i(2);
            i++;
            cout &lt;&lt; i;
            return 0;
    }
</code></pre>
<p>Es geht um</p>
<pre><code>void operator++(int var) {
                val += val;
            }
</code></pre>
<p>Der Inkrement-Operator ++ ist ja ein unärer Operator. Ich verstehe nicht, wieso dann noch ein Parameter var übergeben wird? Ein Parameter bei einer Operatorüberladung kenne ich nur bei binären Operatorenüberladungen. Vorallendingen spielt der Paramater var in der Funktion keine Rolle. Weglassen kann ich den Parameter auch nicht, weil der Compiler dann meckert. Die Fehlermedung bezieht sich dann auf i++.<br />
Bin da ratlos. <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2386015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386015</guid><dc:creator><![CDATA[asd1]]></dc:creator><pubDate>Sun, 02 Mar 2014 08:27:52 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen des ++-Operators on Sun, 02 Mar 2014 08:34:35 GMT]]></title><description><![CDATA[<p>Der <code>int</code> -Parameter wird nur zu Überladungszwecken (zur Unterscheidung zwischen Post- und Präfix-Inkrement) Verwendet. Das Argument im Aufruf ist einfach 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2386016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386016</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 02 Mar 2014 08:34:35 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen des ++-Operators on Sun, 02 Mar 2014 08:35:41 GMT]]></title><description><![CDATA[<p>Der operator++() macht das ++i, der operator++(int) macht das i++, man fand keine hübsche Lösung, um die beiden tatsächlich unterschiedlichen ++-Operatoren unterschiedlich zu definieren, deswegen dieser Trick.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2386017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386017</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 02 Mar 2014 08:35:41 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen des ++-Operators on Sun, 02 Mar 2014 08:50:49 GMT]]></title><description><![CDATA[<blockquote>
<p>keine hübsche Lösung</p>
</blockquote>
<p>Aber vielleicht ein wenig verschünern:</p>
<pre><code>#define POSTFIX int
#define PREFIX
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2386019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386019</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 02 Mar 2014 08:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen des ++-Operators on Sun, 02 Mar 2014 09:29:09 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>keine hübsche Lösung</p>
</blockquote>
<p>Aber vielleicht ein wenig verschünern:</p>
<pre><code>#define POSTFIX int
#define PREFIX
</code></pre>
<p>?</p>
</blockquote>
<p>Aber erst nach</p>
<pre><code>#define BEGIN {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
#define END }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2386021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386021</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 02 Mar 2014 09:29:09 GMT</pubDate></item></channel></rss>