<?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 nur mit verschiedenem Rückgabewert]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich würde gerne eine Funktion nur im Rückgabewert überladen:</p>
<pre><code class="language-cpp">void set_a(double a);
bool set_a(double a);
</code></pre>
<p>damit, wenn ich es mal brauchen sollte, nachprüfen kann ob die set_ Übergabe bei komplizierten Datentypen erfolgreich war und somit keine defekten Daten vorliegen.</p>
<p>Warum ist so etwas nicht erlaubt?</p>
<p>In meinen Augen (als Anfänger) macht es Sinn. Wie ist es im Allgemeinen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/272829/überladen-nur-mit-verschiedenem-rückgabewert</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 16:26:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272829.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Aug 2010 20:20:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 20:20:16 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich würde gerne eine Funktion nur im Rückgabewert überladen:</p>
<pre><code class="language-cpp">void set_a(double a);
bool set_a(double a);
</code></pre>
<p>damit, wenn ich es mal brauchen sollte, nachprüfen kann ob die set_ Übergabe bei komplizierten Datentypen erfolgreich war und somit keine defekten Daten vorliegen.</p>
<p>Warum ist so etwas nicht erlaubt?</p>
<p>In meinen Augen (als Anfänger) macht es Sinn. Wie ist es im Allgemeinen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944383</guid><dc:creator><![CDATA[überladung_]]></dc:creator><pubDate>Wed, 25 Aug 2010 20:20:16 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 20:55:42 GMT]]></title><description><![CDATA[<p>überladung_ schrieb:</p>
<blockquote>
<p>Ich würde gerne eine Funktion nur im Rückgabewert überladen:<br />
Warum ist so etwas nicht erlaubt?</p>
</blockquote>
<p>Das hatten wir heute schonmal :P.<br />
Das ist einfach deswegen nicht möglich, weil der Rückgabetyp (und z.B. auch die Parameternamen) nicht zur Signatur einer Funktion gehört.</p>
<p>Eine Funktion kennzeichnet sich &quot;nur&quot; durch ihren Namen und den Parameterdatentypen, also z.B. so:</p>
<pre><code class="language-cpp">function(int,float,double); // Eine Funktion namens &quot;function&quot; die 3 Parameter, vom Typ int, float und double, erwartet ... Es ist nicht nötig mehr zu wissen, um eine Funktion benutzen zu können.
</code></pre>
<p>hoff das hilft dir weiter <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/1944392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944392</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 25 Aug 2010 20:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 20:51:25 GMT]]></title><description><![CDATA[<p>Weil der Übersetzer manchmal nicht entscheiden könnte, welche „Überladung“ die richtige wäre. Das hat zumindest einmal jemand gesagt, und eigentlich stimmt das auch.<br />
Allerdings finde ich, dass man das schon irgendwie hinbiegen und festlegen könnte, vielleicht gibt es das ja irgendwann einmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944393</guid><dc:creator><![CDATA[Fast2_unreg]]></dc:creator><pubDate>Wed, 25 Aug 2010 20:51:25 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 20:58:41 GMT]]></title><description><![CDATA[<p>Wie Dweb gesagt hat, es ist konzeptionell so, dass der Rückgabewert nicht zu Signatur gehört. Es gibt durchaus Sprachen die es anderes definieren. Als Konsequenz muss mal halt ein Funktion über ein Zuweisung, Typecast, As-Operator, etc helfen, die Eindeutigkeit wiederherzustellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944396</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Wed, 25 Aug 2010 20:58:41 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 21:03:12 GMT]]></title><description><![CDATA[<p>überladung_ schrieb:</p>
<blockquote>
<p>damit, wenn ich es mal brauchen sollte, nachprüfen kann ob die set_ Übergabe bei komplizierten Datentypen erfolgreich war und somit keine defekten Daten vorliegen.</p>
</blockquote>
<p>Dafür gibt es Exceptions!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944398</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 25 Aug 2010 21:03:12 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 21:26:53 GMT]]></title><description><![CDATA[<p>Mach doch einfach mit Rückgabewert. Juckt doch niemand wenn Du den nicht immer verwendest.<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944405</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 25 Aug 2010 21:26:53 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 21:35:29 GMT]]></title><description><![CDATA[<p>Mit Templates ginge es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944408</guid><dc:creator><![CDATA[vorlage]]></dc:creator><pubDate>Wed, 25 Aug 2010 21:35:29 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 22:59:01 GMT]]></title><description><![CDATA[<p>Scorcher24 schrieb:</p>
<blockquote>
<p>Mach doch einfach mit Rückgabewert. Juckt doch niemand wenn Du den nicht immer verwendest.<br />
rya.</p>
</blockquote>
<p>Genau. Wir sind doch hier nicht bei Basic oder Pascal, wo wir noch die schwere Wahl zu treffen hatten, ob wir nun eine Funktion oder eine Prozedur schreiben wollten. <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/1944427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944427</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 25 Aug 2010 22:59:01 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 23:23:57 GMT]]></title><description><![CDATA[<p>Scorcher24 schrieb:</p>
<blockquote>
<p>Mach doch einfach mit Rückgabewert. Juckt doch niemand wenn Du den nicht immer verwendest.</p>
</blockquote>
<p>Das find ich nicht gut, ist nämlich nicht Sinn der Sache. Schließlich liefert eine Funktion ein Resultat, um damit weiterarbeiten zu können. Wenn das Resultat einer Funktion aber nie verarbeitet wird, dann sollte man auch kein Ergebnis zurückliefern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944430</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 25 Aug 2010 23:23:57 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 23:33:13 GMT]]></title><description><![CDATA[<p>Dweb schrieb:</p>
<blockquote>
<p>Scorcher24 schrieb:</p>
<blockquote>
<p>Mach doch einfach mit Rückgabewert. Juckt doch niemand wenn Du den nicht immer verwendest.</p>
</blockquote>
<p>Das find ich nicht gut, ist nämlich nicht Sinn der Sache. Schließlich liefert eine Funktion ein Resultat, um damit weiterarbeiten zu können. Wenn das Resultat einer Funktion aber nie verarbeitet wird, dann sollte man auch kein Ergebnis zurückliefern.</p>
</blockquote>
<p>Wenn es aber nur manchmal verwendet wird? Hui...</p>
<p>Und keine Sorge, wenn es nicht weiterverwendet wird, spart der Compiler auch die nötigen Assembler-Befehle zur Rückgabe. Ganz brav.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944431</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Wed, 25 Aug 2010 23:33:13 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Wed, 25 Aug 2010 23:35:53 GMT]]></title><description><![CDATA[<p>Dweb schrieb:</p>
<blockquote>
<p>Scorcher24 schrieb:</p>
<blockquote>
<p>Mach doch einfach mit Rückgabewert. Juckt doch niemand wenn Du den nicht immer verwendest.</p>
</blockquote>
<p>Das find ich nicht gut, ist nämlich nicht Sinn der Sache. Schließlich liefert eine Funktion ein Resultat, um damit weiterarbeiten zu können. Wenn das Resultat einer Funktion aber nie verarbeitet wird, dann sollte man auch kein Ergebnis zurückliefern.</p>
</blockquote>
<p>Das ist es doch aber, was überladung_ will. Eine Funktion, deren Rückgabewert er nur im Einzelfall auswertet. Ob man das nun durch templates, Überladung oder sontwas lösen will oder in einer Funktion, ist doch letztlich egal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944433</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 25 Aug 2010 23:35:53 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Thu, 26 Aug 2010 05:29:18 GMT]]></title><description><![CDATA[<p>Dweb schrieb:</p>
<blockquote>
<p>Scorcher24 schrieb:</p>
<blockquote>
<p>Mach doch einfach mit Rückgabewert. Juckt doch niemand wenn Du den nicht immer verwendest.</p>
</blockquote>
<p>Das find ich nicht gut, ist nämlich nicht Sinn der Sache. Schließlich liefert eine Funktion ein Resultat, um damit weiterarbeiten zu können. Wenn das Resultat einer Funktion aber nie verarbeitet wird, dann sollte man auch kein Ergebnis zurückliefern.</p>
</blockquote>
<p>Stört ja nicht. So lange der Returnwert billig zu kopieren ist und &quot;gratis&quot; (oder fast gratis) in der Funktion zu ermitteln ist, wäre es fast schon ein Verbrechen ihn wegzulassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944452</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 26 Aug 2010 05:29:18 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Thu, 26 Aug 2010 08:23:16 GMT]]></title><description><![CDATA[<p>SideWinder schrieb:</p>
<blockquote>
<p>Und keine Sorge, wenn es nicht weiterverwendet wird, spart der Compiler auch die nötigen Assembler-Befehle zur Rückgabe. Ganz brav.</p>
</blockquote>
<p>Wenn es wirklich so ist, dann wäre mein Problem ja gelöst und ich könnte nur mit einer Funktion auskommen. Kennt sich da noch jemand damit aus? Ich verwende immer ziemlich neue Compiler. VC10 und GCC 4.5</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944501</guid><dc:creator><![CDATA[überladung_]]></dc:creator><pubDate>Thu, 26 Aug 2010 08:23:16 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Thu, 26 Aug 2010 08:57:58 GMT]]></title><description><![CDATA[<p>überladung_ schrieb:</p>
<blockquote>
<p>SideWinder schrieb:</p>
<blockquote>
<p>Und keine Sorge, wenn es nicht weiterverwendet wird, spart der Compiler auch die nötigen Assembler-Befehle zur Rückgabe. Ganz brav.</p>
</blockquote>
<p>Wenn es wirklich so ist, dann wäre mein Problem ja gelöst und ich könnte nur mit einer Funktion auskommen. Kennt sich da noch jemand damit aus? Ich verwende immer ziemlich neue Compiler. VC10 und GCC 4.5</p>
</blockquote>
<p>Auch wenn es nicht so wäre, würde es doch in der Praxis in den meisten Fällen nichts ausmachen, denke ich. Oder wird deine Funktion in Schleifen ein paar Millionen mal ausgeführt und du kämpfst um jede Nanosekunde?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944512</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 26 Aug 2010 08:57:58 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Thu, 26 Aug 2010 09:03:00 GMT]]></title><description><![CDATA[<p>Und selbst wenn es zeitkritisch wäre: Es wird wegoptimiert. Was für Anweisungen sollte der Compiler denn generieren wenn der Rückgabewert nicht gebraucht wird? Einfach den Wert an eine leere Speicherstelle kopieren? Wenn ja, an welche? Es gibt einfach nichts was da überhaupt zu tun wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944516</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 26 Aug 2010 09:03:00 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen nur mit verschiedenem Rückgabewert on Thu, 26 Aug 2010 12:01:32 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Und selbst wenn es zeitkritisch wäre: Es wird wegoptimiert. Was für Anweisungen sollte der Compiler denn generieren wenn der Rückgabewert nicht gebraucht wird? Einfach den Wert an eine leere Speicherstelle kopieren? Wenn ja, an welche? Es gibt einfach nichts was da überhaupt zu tun wäre.</p>
</blockquote>
<p>Das stimmt so nicht ganz.<br />
Bei Integers/Bools stimmt es wohl für die meisten Compiler, da &quot;einfache&quot; Rückgabewerte meist über ein Register gemacht werden.</p>
<p>Rückgabewerte die nicht mehr in einem Register Platz haben werden allerdings auch bei Nicht-Verwendung konstruiert und wieder zerstört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944616</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 26 Aug 2010 12:01:32 GMT</pubDate></item></channel></rss>