<?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[Stilfrage: Bearbeitung eines Objektes]]></title><description><![CDATA[<p>Hi,</p>
<p>von:</p>
<pre><code>bearbeite(wort); // http://www.c-plusplus.net/forum/315721, SeppJs erster Beitrag
</code></pre>
<p>Ich finde es ja persönlich <strong>schöner</strong></p>
<pre><code>wort = bearbeite(wort);
</code></pre>
<p>zu schreiben, wo <code>bearbeite()</code> eine <code>const</code> -Referenz nimmt und das Ergebnis zurückgibt, anstatt eine Referenz zu nehmen und an dieser zu arbeiten.<br />
Damit spart man eine Zeile, die man sonst (falls man das Ergebnis zwingend in einem neuen, separaten String braucht) für die Definition des zweiten Strings benötigt - hier kann man ja einfach <code>bearbeite(wort)</code> als Initializer bei der Definition nehmen.</p>
<pre><code>//... 'wort' wirt erstellt
std::string neu{wort};
bearbeite(neu);
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<pre><code>//... 'wort' wird erstellt
std::string neu = bearbeite(wort);
</code></pre>
<p><s>Außerdem ist die zweite Variante theoretisch schneller, da ja in der ersten [c]wort[/c] kopiert wird, in der zweiten aber nichts (RVO), oder?</s>(s. u. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> )</p>
<p>Oder welche stilistischen Argumente sprechen für die erste Variante?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/315728/stilfrage-bearbeitung-eines-objektes</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 13:02:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/315728.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Apr 2013 13:11:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Stilfrage: Bearbeitung eines Objektes on Wed, 10 Apr 2013 15:08:12 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>von:</p>
<pre><code>bearbeite(wort); // http://www.c-plusplus.net/forum/315721, SeppJs erster Beitrag
</code></pre>
<p>Ich finde es ja persönlich <strong>schöner</strong></p>
<pre><code>wort = bearbeite(wort);
</code></pre>
<p>zu schreiben, wo <code>bearbeite()</code> eine <code>const</code> -Referenz nimmt und das Ergebnis zurückgibt, anstatt eine Referenz zu nehmen und an dieser zu arbeiten.<br />
Damit spart man eine Zeile, die man sonst (falls man das Ergebnis zwingend in einem neuen, separaten String braucht) für die Definition des zweiten Strings benötigt - hier kann man ja einfach <code>bearbeite(wort)</code> als Initializer bei der Definition nehmen.</p>
<pre><code>//... 'wort' wirt erstellt
std::string neu{wort};
bearbeite(neu);
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<pre><code>//... 'wort' wird erstellt
std::string neu = bearbeite(wort);
</code></pre>
<p><s>Außerdem ist die zweite Variante theoretisch schneller, da ja in der ersten [c]wort[/c] kopiert wird, in der zweiten aber nichts (RVO), oder?</s>(s. u. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> )</p>
<p>Oder welche stilistischen Argumente sprechen für die erste Variante?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314402</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 10 Apr 2013 15:08:12 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Bearbeitung eines Objektes on Wed, 10 Apr 2013 13:33:38 GMT]]></title><description><![CDATA[<p>Kommt auf den Kontext drauf an, wie es benutzt wird, wie teuer es ist, ein Objekt zu kopieren, ob Cache eine Rolle spielt, ...</p>
<p>Auch schreibst du von 'Objekt' und verwendest als Beispiel einen std::string. Bei eigenen Klassen gibt es noch die Option objekt.bearbeite(). Was, wenn es kein String von wenigen KByte ist, sondern ein Bild von vielen MByte?</p>
<blockquote>
<p>da ja in der ersten wort kopiert wird, in der zweiten aber nichts (RVO)</p>
</blockquote>
<p>Du hast sowohl das Orginal als auch die veraenderte Variante. D.h. du musst kopieren bzw. Speicher fuer die veraenderte Variante bereitstellen. D.h. deine Aussage ist falsch.</p>
<p>ps: 'wirt' und 'wird' sind verschieden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314406</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 10 Apr 2013 13:33:38 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Bearbeitung eines Objektes on Wed, 10 Apr 2013 13:32:41 GMT]]></title><description><![CDATA[<p>Das kommt ganz drauf an, was die Funktion macht. (Ich habe in dem Beispiel übrigens <code>bearbeite(wort);</code> gewählt, um das Beispiel einfach zu halten.). Also nicht Stil, sondern auf Logik. Falls es irgendwie Sinn machen kann, auch</p>
<pre><code>anderes_wort = bearbeite(wort);
</code></pre>
<p>zu schreiben, dann natürlich diese Variante, sonst wäre es schließlich nicht möglich. Falls dieser Fall von der Logik von dem was <code>bearbeite()</code> macht gar nicht vorkommen kann (zum Beispiel <code>erhoehe_um_eins()</code> ), dann klar die andere Variante.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314409</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 10 Apr 2013 13:32:41 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Bearbeitung eines Objektes on Wed, 10 Apr 2013 14:29:47 GMT]]></title><description><![CDATA[<p>Ich würde sagen, wenn es irgendwelche Vorteile hat, das Argument inplace zu bearbeiten, dann soll</p>
<pre><code class="language-cpp">bearbeite(string&amp; wort);
</code></pre>
<p>bevorzugt werden, weil das schneller ist und dann auch semantisch stimmig ist.</p>
<p>RVO ist hier ausserdem ein völlig falsches Stichwort, weil bei</p>
<pre><code class="language-cpp">bearbeite(string const&amp; wort) {
  string a = &quot;a&quot;;
  string b = &quot;b&quot;;
  return wort.empty() ? a : b;
}
</code></pre>
<p>hat es kein RVO und trotzdem ist es sinnvoll, eine const-Referenz zu übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314441</guid><dc:creator><![CDATA[stiller]]></dc:creator><pubDate>Wed, 10 Apr 2013 14:29:47 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Bearbeitung eines Objektes on Wed, 10 Apr 2013 15:07:02 GMT]]></title><description><![CDATA[<blockquote>
<p>Du hast sowohl das Orginal als auch die veraenderte Variante. D.h. du musst kopieren bzw. Speicher fuer die veraenderte Variante bereitstellen. D.h. deine Aussage ist falsch.</p>
</blockquote>
<p>Völliger Blödsinn, sorry - da hab ich wohl im schnellen Nachdenken was komisches gefusselt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Ja, die Performance ist gleich, aber</p>
<blockquote>
<p>semantisch stimmig ist.</p>
</blockquote>
<p>Was soll das heißen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314455</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 10 Apr 2013 15:07:02 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Bearbeitung eines Objektes on Wed, 10 Apr 2013 15:12:59 GMT]]></title><description><![CDATA[<blockquote>
<p>Was, wenn es kein String von wenigen KByte ist, sondern ein Bild von vielen MByte?</p>
</blockquote>
<p>Dann hat das mit der Ausgangsfrage nix zu tun, hier ging es ja um den Stil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314456</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 10 Apr 2013 15:12:59 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Bearbeitung eines Objektes on Wed, 10 Apr 2013 15:31:27 GMT]]></title><description><![CDATA[<blockquote>
<p>Dann hat das mit der Ausgangsfrage nix zu tun, hier ging es ja um den Stil.</p>
</blockquote>
<p>Aehm ... warum hast du dann Performance erwaehnt. Auch hast du danach gefragt, was noch fuer/gegen die einzelnen Varianten spricht.</p>
<p>Desweiteren ist unser Verstaendniss von &quot;schoen&quot; verschieden. Schoen ist bei mir in der Programmierung immer problembezogen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314463</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 10 Apr 2013 15:31:27 GMT</pubDate></item></channel></rss>