<?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[Oje, Referenzen als Rückgabetyp.]]></title><description><![CDATA[<p>Hi!</p>
<pre><code class="language-cpp">string buff(&quot;Hello, I am your string buffer!&quot;);

string&amp; get_buffer_as_reference()
{
	return  buff;
}
string get_buffer_as_string()
{
	return  buff;
}
</code></pre>
<p>Bringt mir das irgendwas, in irgendeinem Fall, eine Referenz zurückzugeben? Kann mir jemand ein Beispiel nennen?</p>
<p>Ich habe mal das hier probiert:</p>
<pre><code class="language-cpp">void show_buffer()
{
	cout &lt;&lt; buff &lt;&lt; endl;
}

int main() 
{ 
	string rs = get_buffer_as_reference();
	show_buffer();
	string s = get_buffer_as_string();
	show_buffer();
	rs = &quot;a&quot;;
	show_buffer(); // keine Änderung!

    return 0; 
}
</code></pre>
<p>Obwohl ich eine Referenz zurückgegeben habe, hat die Zeile</p>
<pre><code class="language-cpp">rs = &quot;a&quot;;
</code></pre>
<p>das Objekt nicht geändert. <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/246271/oje-referenzen-als-rückgabetyp</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 06:39:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246271.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Jul 2009 12:27:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Oje, Referenzen als Rückgabetyp. on Sat, 25 Jul 2009 12:27:02 GMT]]></title><description><![CDATA[<p>Hi!</p>
<pre><code class="language-cpp">string buff(&quot;Hello, I am your string buffer!&quot;);

string&amp; get_buffer_as_reference()
{
	return  buff;
}
string get_buffer_as_string()
{
	return  buff;
}
</code></pre>
<p>Bringt mir das irgendwas, in irgendeinem Fall, eine Referenz zurückzugeben? Kann mir jemand ein Beispiel nennen?</p>
<p>Ich habe mal das hier probiert:</p>
<pre><code class="language-cpp">void show_buffer()
{
	cout &lt;&lt; buff &lt;&lt; endl;
}

int main() 
{ 
	string rs = get_buffer_as_reference();
	show_buffer();
	string s = get_buffer_as_string();
	show_buffer();
	rs = &quot;a&quot;;
	show_buffer(); // keine Änderung!

    return 0; 
}
</code></pre>
<p>Obwohl ich eine Referenz zurückgegeben habe, hat die Zeile</p>
<pre><code class="language-cpp">rs = &quot;a&quot;;
</code></pre>
<p>das Objekt nicht geändert. <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/1749370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749370</guid><dc:creator><![CDATA[referenz0r]]></dc:creator><pubDate>Sat, 25 Jul 2009 12:27:02 GMT</pubDate></item><item><title><![CDATA[Reply to Oje, Referenzen als Rückgabetyp. on Sat, 25 Jul 2009 12:32:22 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">string&amp; rs = get_buffer_as_reference();
      ^
      |
      |
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1749372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749372</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 25 Jul 2009 12:32:22 GMT</pubDate></item><item><title><![CDATA[Reply to Oje, Referenzen als Rückgabetyp. on Sat, 25 Jul 2009 12:33:11 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">string &amp;rs = get_buffer_as_reference();
</code></pre>
<p>Das Zurückgeben als Referenz spart in bestimmten Fällen auf jeden Fall den Kopierkonstruktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749374</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Sat, 25 Jul 2009 12:33:11 GMT</pubDate></item><item><title><![CDATA[Reply to Oje, Referenzen als Rückgabetyp. on Sat, 25 Jul 2009 12:34:51 GMT]]></title><description><![CDATA[<p>weil dein rs nicht den Typ string&amp; sondern string hat. Das beduetet, dass der Inhalt der Referenz in ein neues Objekt kopiert wird. string rs stellt ein eigenständiges Objekt dar.</p>
<p>Würest du es so machen:</p>
<pre><code class="language-cpp">string&amp; s = get_string_ref();
s = &quot;xyz&quot;;
</code></pre>
<p>wäre dein string geändert.<br />
Hat verschiedene Anwendungsfälle:</p>
<ol>
<li>man möchte, dass das Objekt verändert werden kann und die Änderungen sollen permanent übernommen werden (wie in deinem Beispiel)</li>
<li>man möchte sich das kopieren des Rückgabewertes ersparen. Möchte man dann verhindern, dass das Objekt verändert wird, kann auch const string&amp; zurückgegebn werden.</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1749378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749378</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sat, 25 Jul 2009 12:34:51 GMT</pubDate></item><item><title><![CDATA[Reply to Oje, Referenzen als Rückgabetyp. on Sat, 25 Jul 2009 12:44:21 GMT]]></title><description><![CDATA[<p>So toll ist das aber alles nicht.<br />
Globale Variablen sind schon mal blöd.</p>
<p>Dann musst du bei sowas immer aufpassen, das das referenzierte Objekt auch länger lebt, als die zurückgebende Funktion etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749383</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Sat, 25 Jul 2009 12:44:21 GMT</pubDate></item><item><title><![CDATA[Reply to Oje, Referenzen als Rückgabetyp. on Sat, 25 Jul 2009 12:55:04 GMT]]></title><description><![CDATA[<p>string **&amp;**rs;<br />
Danke, genau das habe ich gesucht! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749390</guid><dc:creator><![CDATA[referenz0r]]></dc:creator><pubDate>Sat, 25 Jul 2009 12:55:04 GMT</pubDate></item></channel></rss>