<?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[Frage zum Zuweisungsoperator]]></title><description><![CDATA[<p>Hallo, ich habe in meinem Buch gelesen, dass der Kopierkonstruktor aufgerufen wird wenn:</p>
<p>- er explizit zur Instanzbildung verwendet wird, d.h. Test obj1(obj2);<br />
- ein Objekt mittels call by value übergeben wird, dann wird zum Erstellen des Objekts in der Funktion der Kopierkonstruktor verwendet<br />
- ein Objekt nicht als Referenz zurückgegeben wird (return by value). Das Objekt, das zurückgegeben wird ist dann eine Kopie.</p>
<p>Der Zuweisungsoperator hingegen wird beim Gleichsetzen aufgerufen (also die zugehörige Funktion), z.B.: Test obj1; Test obj2 = obj1; . In diesem Fall dürfte doch aber nicht der Kopierkonstruktor aufgerufen werden, das wäre ja auch doppelt gemoppelt oder? Komischerweise, wird bei mir in diesem Fall aber der Kopierkonstruktor aufgerufen ... Das dürfte doch nicht sein, oder? Ich meine wenn ich jetzt noch die Funktion für das = definiere, dann würde das Objekt ja zwei Mal konstruiert werden <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>
<p>Zusammenfassend: Warum wird bei Verwendung des Zuweisungsoperators der Kopierkonstruktor gestartet?</p>
<p>mfg Jessy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293841/frage-zum-zuweisungsoperator</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 04:04:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293841.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Oct 2011 22:14:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zum Zuweisungsoperator on Tue, 11 Oct 2011 22:14:21 GMT]]></title><description><![CDATA[<p>Hallo, ich habe in meinem Buch gelesen, dass der Kopierkonstruktor aufgerufen wird wenn:</p>
<p>- er explizit zur Instanzbildung verwendet wird, d.h. Test obj1(obj2);<br />
- ein Objekt mittels call by value übergeben wird, dann wird zum Erstellen des Objekts in der Funktion der Kopierkonstruktor verwendet<br />
- ein Objekt nicht als Referenz zurückgegeben wird (return by value). Das Objekt, das zurückgegeben wird ist dann eine Kopie.</p>
<p>Der Zuweisungsoperator hingegen wird beim Gleichsetzen aufgerufen (also die zugehörige Funktion), z.B.: Test obj1; Test obj2 = obj1; . In diesem Fall dürfte doch aber nicht der Kopierkonstruktor aufgerufen werden, das wäre ja auch doppelt gemoppelt oder? Komischerweise, wird bei mir in diesem Fall aber der Kopierkonstruktor aufgerufen ... Das dürfte doch nicht sein, oder? Ich meine wenn ich jetzt noch die Funktion für das = definiere, dann würde das Objekt ja zwei Mal konstruiert werden <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>
<p>Zusammenfassend: Warum wird bei Verwendung des Zuweisungsoperators der Kopierkonstruktor gestartet?</p>
<p>mfg Jessy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2130217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2130217</guid><dc:creator><![CDATA[Jessy12]]></dc:creator><pubDate>Tue, 11 Oct 2011 22:14:21 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Zuweisungsoperator on Tue, 11 Oct 2011 22:23:32 GMT]]></title><description><![CDATA[<p>Bei der Definition &quot;Test obj2 = obj1;&quot; wird ein Objekt konstruiert, also muß dort ein Konstruktor aufgerufen werden (da das Objekt als Kopie angelegt wird, der Kopier-Konstruktor). Der Zuweisungs-Operator wird nur dann verwendet, wenn du einem bereits vorher existierenden Objekt einen (neuen) Wert zuweisen willst, wie in <code>Test obj1,obj2; obj2=obj1;</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2130219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2130219</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 11 Oct 2011 22:23:32 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Zuweisungsoperator on Tue, 11 Oct 2011 22:27:16 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort. Ich hätte mal vorher meinen Kopf einschalten sollen.</p>
<p>mfg Jessy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2130221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2130221</guid><dc:creator><![CDATA[Jessy12]]></dc:creator><pubDate>Tue, 11 Oct 2011 22:27:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Zuweisungsoperator on Wed, 12 Oct 2011 07:00:44 GMT]]></title><description><![CDATA[<p><code>Test obj2 = obj1</code> ist aequivalent zu <code>Test obj2(obj1)</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2130277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2130277</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 12 Oct 2011 07:00:44 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Zuweisungsoperator on Wed, 12 Oct 2011 07:25:27 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p><code>Test obj2 = obj1</code> ist aequivalent zu <code>Test obj2(obj1)</code> .</p>
</blockquote>
<p>Jain. Da gibt's doch noch dieses &quot;explicit&quot; und die Tatsache, dass, falls obj1 kein Test-Objekt ist, der Kopierkonstruktor im ersten Fall vorhanden sein muss (auch wenn der Aufruf wegoptimiert wird).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2130288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2130288</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 12 Oct 2011 07:25:27 GMT</pubDate></item></channel></rss>