<?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[Objekt als Parameter einer Methode &#x2F; STL-Vektor: push_back eines Objekts]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe ein Problem in VC 2008.</p>
<p>Ich habe eine Methode und einer der Parameter davon ist ein Objekt. Dieses Objekt seinerseits hat Vektoren (STL), die Objekte beinhalten.</p>
<p>Frage:<br />
Wenn ich einer Methode ein Objekt übergebe wir dja davon eine Kopie erstellt. Wird auch eine Kopie der Vektoren (Membervariable) erstellt?<br />
Wird dabei der operator = aufgerufen?<br />
Oder ein Defaultkonstruktor mit einem Objekt als Parameter?</p>
<p>Weitere Frage:<br />
Wenn ich einem STL-Vektor ein Element mit push_back zuweise, wird dann davon ein neues Objekt erstellt?<br />
Wie ist es, wenn dieses Element ebenfalls ein Objekt ist? Wird dieses kopiert und wenn ja, wird der operator = aufgerufen oder ein Default-Konstruktor? Oder wie geht das genau?</p>
<p>Danke für die Hilfe.</p>
<p>Hans</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263541/objekt-als-parameter-einer-methode-stl-vektor-push_back-eines-objekts</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 19:16:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263541.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 22 Mar 2010 15:04:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt als Parameter einer Methode &#x2F; STL-Vektor: push_back eines Objekts on Mon, 22 Mar 2010 15:04:08 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe ein Problem in VC 2008.</p>
<p>Ich habe eine Methode und einer der Parameter davon ist ein Objekt. Dieses Objekt seinerseits hat Vektoren (STL), die Objekte beinhalten.</p>
<p>Frage:<br />
Wenn ich einer Methode ein Objekt übergebe wir dja davon eine Kopie erstellt. Wird auch eine Kopie der Vektoren (Membervariable) erstellt?<br />
Wird dabei der operator = aufgerufen?<br />
Oder ein Defaultkonstruktor mit einem Objekt als Parameter?</p>
<p>Weitere Frage:<br />
Wenn ich einem STL-Vektor ein Element mit push_back zuweise, wird dann davon ein neues Objekt erstellt?<br />
Wie ist es, wenn dieses Element ebenfalls ein Objekt ist? Wird dieses kopiert und wenn ja, wird der operator = aufgerufen oder ein Default-Konstruktor? Oder wie geht das genau?</p>
<p>Danke für die Hilfe.</p>
<p>Hans</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1872534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872534</guid><dc:creator><![CDATA[hstoessel]]></dc:creator><pubDate>Mon, 22 Mar 2010 15:04:08 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt als Parameter einer Methode &#x2F; STL-Vektor: push_back eines Objekts on Mon, 22 Mar 2010 15:10:32 GMT]]></title><description><![CDATA[<p>Probiers doch aus, indem Du den Copy Ctor und den Assignment Op. implementierst und dort einen Breakpoint machst (od. eine Debug Ausgabe).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1872538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872538</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Mon, 22 Mar 2010 15:10:32 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt als Parameter einer Methode &#x2F; STL-Vektor: push_back eines Objekts on Mon, 22 Mar 2010 15:14:42 GMT]]></title><description><![CDATA[<p>Zur ersten Frage:<br />
Es wäre schön wenn du dein Problem mit Code untermauern würdest, dann könnte man eben kommentieren.</p>
<p>Zur zweiten Frage:<br />
Wovon ein zweites Objekt? Der Zeiger wird einfach nur um ein T erweitert. Nein, das Objekt wird nicht kopiert, da <a href="http://www.cplusplus.com/reference/stl/vector/push_back/" rel="nofollow">std::vector&lt;T&gt;::push_back(const T&amp; x)</a> der Parameter eine Referenz auf T ist. Und was genau sollte der def-ctor damit zu tun haben? Ich kann nirgendswo einen sehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1872539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872539</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Mon, 22 Mar 2010 15:14:42 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt als Parameter einer Methode &#x2F; STL-Vektor: push_back eines Objekts on Mon, 22 Mar 2010 15:26:09 GMT]]></title><description><![CDATA[<p>Vector erzeugt bei push_back ein neues Objekt, welches mittels des Kopierkonstruktors initialisiert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1872550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872550</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 22 Mar 2010 15:26:09 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt als Parameter einer Methode &#x2F; STL-Vektor: push_back eines Objekts on Mon, 22 Mar 2010 16:00:41 GMT]]></title><description><![CDATA[<p>hstoessel schrieb:</p>
<blockquote>
<p>Frage:<br />
Wenn ich einer Methode ein Objekt übergebe wir dja davon eine Kopie erstellt. Wird auch eine Kopie der Vektoren (Membervariable) erstellt?</p>
</blockquote>
<p>Ja.</p>
<p>hstoessel schrieb:</p>
<blockquote>
<p>Wird dabei der operator = aufgerufen?<br />
Oder ein Defaultkonstruktor mit einem Objekt als Parameter?</p>
</blockquote>
<p>Das wird wohl Implementierungsabhängig sein, wobei ich vom Kopierkonstruktor ausgehe. Ein Objekt, das in einem vector abgelegt werden, muss sowohl einen Zuweisungsoperator als auch Kopierkonstruktor besitzen.</p>
<p>Aber fernab der Frage: Ist eine Kopie wirklich nötig? Oder reicht eine konstante Referenz bei der Übergabe (womit Kopien hinfällig werden).</p>
<p>Ich verwende bei der Übergabe von Objekten (im Sinne von Instanz einer Klasse/Struktur) grundsätzlich konstante Referenzen, sofern nichts anderes nötig ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1872570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872570</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 22 Mar 2010 16:00:41 GMT</pubDate></item></channel></rss>