<?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[Fehler beim Überladen einer Funktion mit und ohne const-Rückgabe]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich benutze dev-c++ 4.9.9.2 und er spuckt bei folgendem Code eine Fehlermeldung aus. (Der Übersicht halber nur die 4 relevanten Zeilen)</p>
<pre><code>class v3 {
public:
      double x[3];
      const GLdouble&amp; operator[](const int i) { return x[i]; }
      GLdouble&amp; operator[](const int i) { return x[i]; }
};
</code></pre>
<p>er sagt, dass er die funktionen nicht überladen kann.</p>
<p>in einem buch (&quot;Effektiv C++ programmieren&quot;, Kapitel 21, 1993 erschienen) ist das aber (in einem analogen fall) genauso überladen worden, also 2 funktionen, die bis auf const bei der referenz-rückgabe identisch waren.</p>
<p>wo liegt der fehler?<br />
ist ein solches überladen generell falsch (und damit der standard zur releasezeit des buches vielleicht überholt)?<br />
und welche andere möglichkeit gibt es, operator[] sowohl für const, als auch nicht-const-referenzen zu benutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/228168/fehler-beim-überladen-einer-funktion-mit-und-ohne-const-rückgabe</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 17:03:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/228168.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Nov 2008 22:21:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler beim Überladen einer Funktion mit und ohne const-Rückgabe on Mon, 24 Nov 2008 22:21:56 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich benutze dev-c++ 4.9.9.2 und er spuckt bei folgendem Code eine Fehlermeldung aus. (Der Übersicht halber nur die 4 relevanten Zeilen)</p>
<pre><code>class v3 {
public:
      double x[3];
      const GLdouble&amp; operator[](const int i) { return x[i]; }
      GLdouble&amp; operator[](const int i) { return x[i]; }
};
</code></pre>
<p>er sagt, dass er die funktionen nicht überladen kann.</p>
<p>in einem buch (&quot;Effektiv C++ programmieren&quot;, Kapitel 21, 1993 erschienen) ist das aber (in einem analogen fall) genauso überladen worden, also 2 funktionen, die bis auf const bei der referenz-rückgabe identisch waren.</p>
<p>wo liegt der fehler?<br />
ist ein solches überladen generell falsch (und damit der standard zur releasezeit des buches vielleicht überholt)?<br />
und welche andere möglichkeit gibt es, operator[] sowohl für const, als auch nicht-const-referenzen zu benutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1620215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620215</guid><dc:creator><![CDATA[hermesasl]]></dc:creator><pubDate>Mon, 24 Nov 2008 22:21:56 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler beim Überladen einer Funktion mit und ohne const-Rückgabe on Mon, 24 Nov 2008 22:49:35 GMT]]></title><description><![CDATA[<p>Du kannst generell nicht nach dem Rückgabetyp überladen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1620229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620229</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Mon, 24 Nov 2008 22:49:35 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler beim Überladen einer Funktion mit und ohne const-Rückgabe on Mon, 24 Nov 2008 23:01:14 GMT]]></title><description><![CDATA[<p>Lies dir das Kapitel im Meyers nochmal durch und achte genauer auf den Quelltext. Ein <strong>const</strong> hast du bei dir vergessen, leider das entscheidende. <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>
<pre><code class="language-cpp">class v3 {
public:
      double x[3];
      const GLdouble&amp; operator[](const int i) const //!!!!
                { return x[i]; } 
      GLdouble&amp; operator[](const int i) { return x[i]; }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1620233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620233</guid><dc:creator><![CDATA[Kritiker]]></dc:creator><pubDate>Mon, 24 Nov 2008 23:01:14 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler beim Überladen einer Funktion mit und ohne const-Rückgabe on Tue, 25 Nov 2008 15:48:16 GMT]]></title><description><![CDATA[<p>danke, funktioniert!</p>
<p>in meiner auflage des buches steht es aber (hab nochmal nachgeguckt) ohne das &quot;entscheidende&quot; const - na gut, sind sowieso noch paar tippfehler drin <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>hab mich schon gewundert, dass es da fehlt und dachte eigentlich, dass ich es probiert habe .. aber scheinbar war doch irgendwas verkehrt.</p>
<p>danke für den tipp!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1620560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620560</guid><dc:creator><![CDATA[hermesasl]]></dc:creator><pubDate>Tue, 25 Nov 2008 15:48:16 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler beim Überladen einer Funktion mit und ohne const-Rückgabe on Tue, 25 Nov 2008 16:55:16 GMT]]></title><description><![CDATA[<p>hermesasl schrieb:</p>
<blockquote>
<p>in meiner auflage des buches steht es aber (hab nochmal nachgeguckt) ohne das &quot;entscheidende&quot; const - na gut, sind sowieso noch paar tippfehler drin <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>
</blockquote>
<p>Deine Ausgabe ist ohnehin schon recht alt (In der Neuauflage ist der Punkt z.B. nicht mehr 21 sondern 3) und hat einiges an &quot;Updates&quot; erfahren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1620609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1620609</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 25 Nov 2008 16:55:16 GMT</pubDate></item></channel></rss>