<?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[Const Object und Operator]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
#include &lt;stdio.h&gt;
using namespace std;
struct Int {
    int dat;
    Int() {
        dat = 5;
    }
    Int operator + (const Int &amp;b) {
        Int erg;
        erg.dat = dat + b.dat;
        return erg;
    }
};
int main() {
    const Int a; // Fehler
    const Int b;
    Int c = a + b;
    return 0;
}
</code></pre>
<p>aber</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;stdio.h&gt;
using namespace std;
struct Int {
    int dat;
    Int() {
        dat = 5;
    }
    Int operator + (const Int &amp;b) {
        Int erg;
        erg.dat = dat + b.dat;
        return erg;
    }
};
int main() {
    Int a; // Keiner Fehler
    const Int b;
    Int c = a + b;
    return 0;
}
</code></pre>
<p>Warum ist das so?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/333791/const-object-und-operator</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 11:37:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/333791.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 31 Jul 2015 19:16:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Const Object und Operator on Fri, 31 Jul 2015 19:16:03 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
#include &lt;stdio.h&gt;
using namespace std;
struct Int {
    int dat;
    Int() {
        dat = 5;
    }
    Int operator + (const Int &amp;b) {
        Int erg;
        erg.dat = dat + b.dat;
        return erg;
    }
};
int main() {
    const Int a; // Fehler
    const Int b;
    Int c = a + b;
    return 0;
}
</code></pre>
<p>aber</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;stdio.h&gt;
using namespace std;
struct Int {
    int dat;
    Int() {
        dat = 5;
    }
    Int operator + (const Int &amp;b) {
        Int erg;
        erg.dat = dat + b.dat;
        return erg;
    }
};
int main() {
    Int a; // Keiner Fehler
    const Int b;
    Int c = a + b;
    return 0;
}
</code></pre>
<p>Warum ist das so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2461867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461867</guid><dc:creator><![CDATA[Toghrul]]></dc:creator><pubDate>Fri, 31 Jul 2015 19:16:03 GMT</pubDate></item><item><title><![CDATA[Reply to Const Object und Operator on Fri, 31 Jul 2015 19:17:36 GMT]]></title><description><![CDATA[<p>Was genau ist da der Fehler?<br />
Ich glaube nicht die Zeile, die du da markiert hast.</p>
<p>Was aber zu einem Fehler führen sollte ist, dass du eine nicht konstante Operation auf einem konstanten Objekt ausführen willst, nämlich den +-Operator</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2461868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461868</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 31 Jul 2015 19:17:36 GMT</pubDate></item><item><title><![CDATA[Reply to Const Object und Operator on Fri, 31 Jul 2015 19:19:42 GMT]]></title><description><![CDATA[<p>Du musst deinen <code>operator+</code> so definieren, dass er auch mit einem konstanten Objekt funktioniert:</p>
<pre><code>#include &lt;iostream&gt;
  Int operator + (const Int &amp;b) const {
    Int erg;
    erg.dat = dat + b.dat;
    return erg;
  }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2461869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461869</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Fri, 31 Jul 2015 19:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to Const Object und Operator on Fri, 31 Jul 2015 19:24:10 GMT]]></title><description><![CDATA[<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2461870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461870</guid><dc:creator><![CDATA[Toghrul]]></dc:creator><pubDate>Fri, 31 Jul 2015 19:24:10 GMT</pubDate></item><item><title><![CDATA[Reply to Const Object und Operator on Fri, 31 Jul 2015 19:31:18 GMT]]></title><description><![CDATA[<p>Wobei ich es vorziehe den <code>operator+</code> als freistehende Funktion zu definieren. Man kann dann in der Implementierung direkt auf den <code>operator+=</code> zugreifen, der eine Memberfunktion bleibt:</p>
<pre><code>struct Int {
  int dat;
  Int() {
    dat = 5;
  }

  Int&amp; operator+= (const Int&amp; rh) {
    dat += rh.dat;
    return *this;
  }
};

Int operator+ (const Int&amp; lh, const Int&amp; rh)
{
  Int rvo(lh);
  rvo += rh;
  return rvo;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2461873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461873</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Fri, 31 Jul 2015 19:31:18 GMT</pubDate></item></channel></rss>