<?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[Refernz als Rückgabewert]]></title><description><![CDATA[<p>Hallo Leute, habe vor kurzem erfahren, das es auch Funktionen mit Referenzen als Rückgaberwert gibt, also z.B</p>
<pre><code class="language-cpp">string &amp;sstr(string &amp;str) // Funktion
</code></pre>
<p>Ich kapiere einfach nicht was es uns bringt die komplette Funktion als Referenz zu schreiben und dann durch return diese zurückzugeben. Besser egsagt, wann würde man eine Funktion mit einer Refernz als Rückgaberwert gebrauchen? Denn wenn ich ja schon in meinen Parametern eine Referenz habe und irgendwelche operationen an ihnen ausführe, wird die Datei zu welcher, wie in diesem Beispiel, str eine Refernz ist schon geändert und somitz müsste ich ja nicht die komplette Funktion als Refernz machen oder?</p>
<p>-GhostfaceChilla-</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/301939/refernz-als-rückgabewert</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 16:26:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301939.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Apr 2012 14:32:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Refernz als Rückgabewert on Sat, 07 Apr 2012 14:32:54 GMT]]></title><description><![CDATA[<p>Hallo Leute, habe vor kurzem erfahren, das es auch Funktionen mit Referenzen als Rückgaberwert gibt, also z.B</p>
<pre><code class="language-cpp">string &amp;sstr(string &amp;str) // Funktion
</code></pre>
<p>Ich kapiere einfach nicht was es uns bringt die komplette Funktion als Referenz zu schreiben und dann durch return diese zurückzugeben. Besser egsagt, wann würde man eine Funktion mit einer Refernz als Rückgaberwert gebrauchen? Denn wenn ich ja schon in meinen Parametern eine Referenz habe und irgendwelche operationen an ihnen ausführe, wird die Datei zu welcher, wie in diesem Beispiel, str eine Refernz ist schon geändert und somitz müsste ich ja nicht die komplette Funktion als Refernz machen oder?</p>
<p>-GhostfaceChilla-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199629</guid><dc:creator><![CDATA[GhostfaceChilla]]></dc:creator><pubDate>Sat, 07 Apr 2012 14:32:54 GMT</pubDate></item><item><title><![CDATA[Reply to Refernz als Rückgabewert on Sat, 07 Apr 2012 14:37:31 GMT]]></title><description><![CDATA[<p>Könnte man, damit so was möglich ist</p>
<pre><code class="language-cpp">foo(sstr(str))
</code></pre>
<p>Allerdings sind normale Anwendungsfälle eher irgendwelche Getter Funktionen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199631</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 07 Apr 2012 14:37:31 GMT</pubDate></item><item><title><![CDATA[Reply to Refernz als Rückgabewert on Sat, 07 Apr 2012 14:39:46 GMT]]></title><description><![CDATA[<p>zum Beispiel bei einem Singleton könntest du die Instanz als Referenz zurückgeben.</p>
<pre><code class="language-cpp">foo&amp; foo::getInstance()
{
   return instance;
}
</code></pre>
<p>greetz KN4CK3R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199633</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Sat, 07 Apr 2012 14:39:46 GMT</pubDate></item><item><title><![CDATA[Reply to Refernz als Rückgabewert on Sat, 07 Apr 2012 14:40:05 GMT]]></title><description><![CDATA[<blockquote>
<p>komplette Funktion als Referenz zu schreiben</p>
</blockquote>
<p>Das kann man irgendwie so nicht sagen. Man schreibt keine Funktionen als Referenz.</p>
<p>Funktionen können Referenzen als Argumente oder Rückgabewert haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199634</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sat, 07 Apr 2012 14:40:05 GMT</pubDate></item><item><title><![CDATA[Reply to Refernz als Rückgabewert on Sat, 07 Apr 2012 14:40:18 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class DingsenDa {
  std::string str;
public:
  std::string&amp; data()
    { return str; }
};
</code></pre>
<p>Und bei deinem Beispiel kann es sehr wohl interessant sein:</p>
<pre><code class="language-cpp">std::string&amp; sstr( std::string&amp; str ) {
  // mach was mit str;
  return str;
}
</code></pre>
<p>Dadurch dass sstr eine Referenz auf den übergebenen String zurück gibt, sind schön Verkettungen möglich:</p>
<pre><code class="language-cpp">std::string dat(&quot;irgend eine Zeichenkette&quot;);
sstr(dat).append(&quot;Hallo Welt&quot;);
</code></pre>
<p>Und nur damit das noch klar wird:</p>
<blockquote>
<p>was es uns bringt die komplette Funktion als Referenz zu schreiben und dann durch return diese zurückzugeben</p>
</blockquote>
<p>Die Funktion ist keine Referenz, und es wird auch nicht die Funktion zurückgegeben. Die Funktion gibt einfach nur eine Referenz auf etwas zurück. Das was referenziert wird, muss natürlich lange genug leben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199635</guid><dc:creator><![CDATA[arghonaut]]></dc:creator><pubDate>Sat, 07 Apr 2012 14:40:18 GMT</pubDate></item></channel></rss>