<?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[Performancefrage]]></title><description><![CDATA[<p>Wenn ich eine Klasse hab, die einen vector enthält.</p>
<pre><code class="language-cpp">class MyClass {
    std::vector&lt;std::string&gt; texts;
};
</code></pre>
<p>Und diese wie folgt Klasse an eine Funktion übergebe.</p>
<pre><code class="language-cpp">void doSomething(MyClass my);

...

MyClass my;
//Werte setzen...
doSomething(my);
</code></pre>
<p>Wird dann immer der ganze Inhalt des vectors kopiert?</p>
<p>Wenn ich es als Referenz übergebe,</p>
<pre><code class="language-cpp">void doSomething(MyClass&amp; my);
</code></pre>
<p>wird dann auch der Inhalt kopiert?</p>
<p>Und wenn ich einen Pointer auf eine Instanz meiner Klasse zurückgebe und diesen dann dereferenziere, wird dann auch der Inhalt kopiert?</p>
<pre><code class="language-cpp">class OhterClass {
    MyClass my;

    MyClass* getMy();
};

...
OtherClass other;

MyClass* my1 = other.getMy();
MyClass my2 = *(my1); //Wird hier kopiert?
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/152497/performancefrage</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 04:08:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/152497.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Jul 2006 18:05:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Performancefrage on Thu, 06 Jul 2006 18:05:41 GMT]]></title><description><![CDATA[<p>Wenn ich eine Klasse hab, die einen vector enthält.</p>
<pre><code class="language-cpp">class MyClass {
    std::vector&lt;std::string&gt; texts;
};
</code></pre>
<p>Und diese wie folgt Klasse an eine Funktion übergebe.</p>
<pre><code class="language-cpp">void doSomething(MyClass my);

...

MyClass my;
//Werte setzen...
doSomething(my);
</code></pre>
<p>Wird dann immer der ganze Inhalt des vectors kopiert?</p>
<p>Wenn ich es als Referenz übergebe,</p>
<pre><code class="language-cpp">void doSomething(MyClass&amp; my);
</code></pre>
<p>wird dann auch der Inhalt kopiert?</p>
<p>Und wenn ich einen Pointer auf eine Instanz meiner Klasse zurückgebe und diesen dann dereferenziere, wird dann auch der Inhalt kopiert?</p>
<pre><code class="language-cpp">class OhterClass {
    MyClass my;

    MyClass* getMy();
};

...
OtherClass other;

MyClass* my1 = other.getMy();
MyClass my2 = *(my1); //Wird hier kopiert?
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1092703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1092703</guid><dc:creator><![CDATA[User011]]></dc:creator><pubDate>Thu, 06 Jul 2006 18:05:41 GMT</pubDate></item><item><title><![CDATA[Reply to Performancefrage on Thu, 06 Jul 2006 18:07:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void doSomething(MyClass my);
</code></pre>
<p>wird kopiert</p>
<pre><code class="language-cpp">void doSomething(MyClass&amp; my);
</code></pre>
<p>wird nicht kopiert.<br />
und der letzte Punkt ist auch richtig. Beim Zuweisen des dereferenzierte Pointers wird wieder kopiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1092706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1092706</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 06 Jul 2006 18:07:54 GMT</pubDate></item><item><title><![CDATA[Reply to Performancefrage on Thu, 06 Jul 2006 19:29:16 GMT]]></title><description><![CDATA[<p>Wenn ich die übergebe Referenz zuweise, dann wird auch wieder kopiert, oder?</p>
<pre><code class="language-cpp">void doSomething(MyClass&amp; my) {
    MyClass my2 = my;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1092774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1092774</guid><dc:creator><![CDATA[User011]]></dc:creator><pubDate>Thu, 06 Jul 2006 19:29:16 GMT</pubDate></item><item><title><![CDATA[Reply to Performancefrage on Thu, 06 Jul 2006 19:40:59 GMT]]></title><description><![CDATA[<p>Ja. Obwohl dann die Frage ist ob die Übergabe per Referenz so viel Sinn macht. Wenn man sie nicht verändert sollte man sie außerdem mit const deklarieren, damit man als Anwender der Funktion sehen kann, dass das Objekt nicht verändert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1092779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1092779</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Thu, 06 Jul 2006 19:40:59 GMT</pubDate></item><item><title><![CDATA[Reply to Performancefrage on Sat, 08 Jul 2006 17:04:44 GMT]]></title><description><![CDATA[<p>Vellas schrieb:</p>
<blockquote>
<p>Ja. Obwohl dann die Frage ist ob die Übergabe per Referenz so viel Sinn macht.</p>
</blockquote>
<p>Eher nicht. Wenn innerhalb der Funktion sowieso eine Kopie erstellt wird, dann kann man den Parameter auch gleich by-value übergeben. Das ermöglicht dem Compiler etwas mehr Spielraum für Optimierungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1094028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1094028</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sat, 08 Jul 2006 17:04:44 GMT</pubDate></item></channel></rss>