<?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[Unique_ptr in vector]]></title><description><![CDATA[<p>Hallo,<br />
Ich verstehe nicht warum ich meinen unique_ptr&lt;teilchen&gt; nicht in einen vector speichern kann. Es funktioniert auch für den Konstruktor aber wenn ich nacher zugreifen will mit einer Funktion, ist der vector leer.<br />
Wenn ich nur unique_ptr&lt;teilchen&gt; erstelle, bleibt dieser und kann<br />
weiter verwendert werden, woran liegt das.</p>
<pre><code>simulation::simulation()
{
	cout &lt;&lt; &quot;hier ist die simulation&quot; &lt;&lt; endl;

	vector&lt;unique_ptr&lt;teilchen&gt;&gt; Teilchen;
	Teilchen.push_back(move(unique_ptr&lt;teilchen&gt;(new teilchen)));

	Teilchen1 = move(unique_ptr&lt;teilchen&gt;(new teilchen));

	Teilchen[0]-&gt;Einstellen();
	Teilchen1-&gt;Einstellen();

	Teilchen[0]-&gt;PositionSetzten(-5000, -5000);
	Teilchen1-&gt;PositionSetzten(-10000, -10000);

};
</code></pre>
<p>Die Funktion wo es gebraucht wird:</p>
<pre><code>void simulation::antworten(programm&amp; pprogramm) {

	pprogramm.Fenster.draw(*Teilchen[0]-&gt;TeilchenGrafik);
	pprogramm.Fenster.draw(*Teilchen1-&gt;TeilchenGrafik);
}
</code></pre>
<p>Ich vermute etwas mit Geltungsbereichen, blicke aber noch nicht durch...</p>
<p>MfG,<br />
Rarebit.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332830/unique_ptr-in-vector</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 12:03:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332830.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 May 2015 19:03:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unique_ptr in vector on Sun, 24 May 2015 19:03:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Ich verstehe nicht warum ich meinen unique_ptr&lt;teilchen&gt; nicht in einen vector speichern kann. Es funktioniert auch für den Konstruktor aber wenn ich nacher zugreifen will mit einer Funktion, ist der vector leer.<br />
Wenn ich nur unique_ptr&lt;teilchen&gt; erstelle, bleibt dieser und kann<br />
weiter verwendert werden, woran liegt das.</p>
<pre><code>simulation::simulation()
{
	cout &lt;&lt; &quot;hier ist die simulation&quot; &lt;&lt; endl;

	vector&lt;unique_ptr&lt;teilchen&gt;&gt; Teilchen;
	Teilchen.push_back(move(unique_ptr&lt;teilchen&gt;(new teilchen)));

	Teilchen1 = move(unique_ptr&lt;teilchen&gt;(new teilchen));

	Teilchen[0]-&gt;Einstellen();
	Teilchen1-&gt;Einstellen();

	Teilchen[0]-&gt;PositionSetzten(-5000, -5000);
	Teilchen1-&gt;PositionSetzten(-10000, -10000);

};
</code></pre>
<p>Die Funktion wo es gebraucht wird:</p>
<pre><code>void simulation::antworten(programm&amp; pprogramm) {

	pprogramm.Fenster.draw(*Teilchen[0]-&gt;TeilchenGrafik);
	pprogramm.Fenster.draw(*Teilchen1-&gt;TeilchenGrafik);
}
</code></pre>
<p>Ich vermute etwas mit Geltungsbereichen, blicke aber noch nicht durch...</p>
<p>MfG,<br />
Rarebit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454655</guid><dc:creator><![CDATA[Rarebit]]></dc:creator><pubDate>Sun, 24 May 2015 19:03:06 GMT</pubDate></item><item><title><![CDATA[Reply to Unique_ptr in vector on Sun, 24 May 2015 19:09:45 GMT]]></title><description><![CDATA[<p>Selbe Problem wie in deinem anderen Thread.<br />
Du erzeugst in deinem Konstruktor eine lokale Variable, diese befüllst.<br />
Verlässt du den Konstruktor, wird diese zerstört.<br />
In deiner antworten Funktion greifst du auf die Membervariable zu, diese hast du aber nie befüllt!</p>
<p>Selbe Problematik ist auch ohne std::unique_ptr. Dessen Verwendung ist hier übrigens nicht nötig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454657</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 24 May 2015 19:09:45 GMT</pubDate></item><item><title><![CDATA[Reply to Unique_ptr in vector on Sun, 24 May 2015 19:30:30 GMT]]></title><description><![CDATA[<p>Also ich versuche das jetzt mal zu verstehen.<br />
Du meinst das der Vector lokal ist?<br />
Und daher kann ich nicht auf den Pointer zugreifen,<br />
weil dieser im Vektor gelöscht wird.</p>
<p>Warum wird der der Pointer nicht gelöscht, er ist doch genau so in dem Geltungsbereich.<br />
Und was meinst du damit das er hier nicht von nören ist?</p>
<p>Danke schon mal <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/2454658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454658</guid><dc:creator><![CDATA[Rarebit]]></dc:creator><pubDate>Sun, 24 May 2015 19:30:30 GMT</pubDate></item><item><title><![CDATA[Reply to Unique_ptr in vector on Sun, 24 May 2015 19:46:13 GMT]]></title><description><![CDATA[<p>1 sekunde nachdenken, nachdem ganzen tag auf seinen code glotzen... sry</p>
<p>verstanden!<br />
danke dir Nathan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454659</guid><dc:creator><![CDATA[Rarebit]]></dc:creator><pubDate>Sun, 24 May 2015 19:46:13 GMT</pubDate></item><item><title><![CDATA[Reply to Unique_ptr in vector on Sun, 24 May 2015 20:08:25 GMT]]></title><description><![CDATA[<p>Die beiden move Aufrufe sind übrigens total überflüssig weil du bereits ein temporäres Objekt hast. Da brauchst du kein move mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454662</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sun, 24 May 2015 20:08:25 GMT</pubDate></item></channel></rss>