<?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[std::string&amp;amp; vs std::string]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>mir ist der Unterschied zwischen folgenden zwei Funktionen noch nicht 100% klar:</p>
<pre><code>void DoSomething(std::string param) {}
</code></pre>
<p>und</p>
<pre><code>void DoSomething(std::string&amp; param) {}
</code></pre>
<p>Beides kann ich wie folgt aufrufen:</p>
<pre><code>std::string myparam = &quot;test&quot;;
DoSomething(myparam);
</code></pre>
<p>Danke für Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302887/std-string-amp-vs-std-string</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 02:01:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302887.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Apr 2012 06:15:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::string&amp;amp; vs std::string on Mon, 30 Apr 2012 06:15:33 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>mir ist der Unterschied zwischen folgenden zwei Funktionen noch nicht 100% klar:</p>
<pre><code>void DoSomething(std::string param) {}
</code></pre>
<p>und</p>
<pre><code>void DoSomething(std::string&amp; param) {}
</code></pre>
<p>Beides kann ich wie folgt aufrufen:</p>
<pre><code>std::string myparam = &quot;test&quot;;
DoSomething(myparam);
</code></pre>
<p>Danke für Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2206824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2206824</guid><dc:creator><![CDATA[commu_nicator]]></dc:creator><pubDate>Mon, 30 Apr 2012 06:15:33 GMT</pubDate></item><item><title><![CDATA[Reply to std::string&amp;amp; vs std::string on Mon, 30 Apr 2012 06:30:43 GMT]]></title><description><![CDATA[<p>Die erstere Version bedeutet: Kopiere den übergebenen String und mache etwas mit der Kopie innerhalb der Funktion. Da innerhalb der Funktion nur die Kopie zugreifbar ist, heißt das, dass der Originalstring auf keinen Fall verändert wird.</p>
<p>Die zweite Version heißt: kopiere den String <em>nicht</em> sondern übergebe eine Referenz auf das Original in die Funktion. Wenn innerhalb der Funktion etwas mit dieser Referenz veranstaltet wird (z.B. eine Änderung), dann wird dadurch auch das Original geändert. Es gibt keinerlei Garantie, dass der String hinterher noch &quot;test&quot; enthält.</p>
<p>Die dritte Version, die du noch nicht erwähnt hast:</p>
<pre><code class="language-cpp">void DoSomething(std::string const&amp; param) {}
</code></pre>
<p>Heißt: Spare dir die Kopie, sondern übergebe auch hier eine Referenz auf das Original. Da die Referenz allerdings als const definiert wurde, ist garantiert, dass das Original hinerher den gleichen Inhalt hat. Innerhalb der Funktion darf dann mit param nichts gemacht werden, was den String verändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2206826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2206826</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 30 Apr 2012 06:30:43 GMT</pubDate></item><item><title><![CDATA[Reply to std::string&amp;amp; vs std::string on Mon, 30 Apr 2012 08:06:02 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Danke für die ausführliche Antwort.</p>
<p>Noch eine kurze Frage dazu:</p>
<pre><code>void DoSomething(std::string const&amp; param) {}
</code></pre>
<p>ist äquivalent zu</p>
<pre><code>void DoSomething(const std::string&amp; param) {}
</code></pre>
<p>oder?</p>
<p>Sonst wären alle Unklarheiten beseitigt. Super!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2206835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2206835</guid><dc:creator><![CDATA[commu_nicator]]></dc:creator><pubDate>Mon, 30 Apr 2012 08:06:02 GMT</pubDate></item><item><title><![CDATA[Reply to std::string&amp;amp; vs std::string on Mon, 30 Apr 2012 08:09:48 GMT]]></title><description><![CDATA[<p>ja</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2206837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2206837</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Mon, 30 Apr 2012 08:09:48 GMT</pubDate></item><item><title><![CDATA[Reply to std::string&amp;amp; vs std::string on Mon, 30 Apr 2012 08:17:08 GMT]]></title><description><![CDATA[<p>commu_nicator schrieb:</p>
<blockquote>
<p>H</p>
<pre><code>void DoSomething(std::string const&amp; param) {}
</code></pre>
<p>ist äquivalent zu</p>
<pre><code>void DoSomething(const std::string&amp; param) {}
</code></pre>
<p>oder?</p>
</blockquote>
<p>Ja. Welches von beidem man benutzt ist reine Geschmackssache, macht überhaupt keinen Unterschied. Lesen könne sollte man beides <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/2206840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2206840</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 30 Apr 2012 08:17:08 GMT</pubDate></item></channel></rss>