<?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[std::list Wie vom Iterator zum Objekt?]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>wie komme ich vom Iterator der Liste wieder zu dem ursprünglichem Objekt?</p>
<pre><code class="language-cpp">// Ich fülle die Objekte so in die Liste ein:
std::list&lt;MyClass&gt; liste;
MyClass *oMyClassObj = new MyClass();
liste.push_back(*oMyClassObj);

//Wie komm ich nun wieder zum Objekt?
for (std::list&lt;MyClass &gt;::const_iterator oIter = liste.begin();
	oIter != liste.end(); 
	oIter++) {

	oIter-&gt;ShowMessagebox(); // Funktioniert.
	const MyClass *abc = oIter; // Geht nicht!
}
</code></pre>
<blockquote>
<p>cannot convert from 'class std::list&lt;class MyClass ,class std::allocator&lt;class MyClass &gt; &gt;::const_iterator' to 'class MyClass *'</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/topic/192184/std-list-wie-vom-iterator-zum-objekt</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 09:20:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192184.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Sep 2007 14:05:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::list Wie vom Iterator zum Objekt? on Tue, 11 Sep 2007 14:05:33 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>wie komme ich vom Iterator der Liste wieder zu dem ursprünglichem Objekt?</p>
<pre><code class="language-cpp">// Ich fülle die Objekte so in die Liste ein:
std::list&lt;MyClass&gt; liste;
MyClass *oMyClassObj = new MyClass();
liste.push_back(*oMyClassObj);

//Wie komm ich nun wieder zum Objekt?
for (std::list&lt;MyClass &gt;::const_iterator oIter = liste.begin();
	oIter != liste.end(); 
	oIter++) {

	oIter-&gt;ShowMessagebox(); // Funktioniert.
	const MyClass *abc = oIter; // Geht nicht!
}
</code></pre>
<blockquote>
<p>cannot convert from 'class std::list&lt;class MyClass ,class std::allocator&lt;class MyClass &gt; &gt;::const_iterator' to 'class MyClass *'</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1363378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363378</guid><dc:creator><![CDATA[ZubX]]></dc:creator><pubDate>Tue, 11 Sep 2007 14:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Wie vom Iterator zum Objekt? on Tue, 11 Sep 2007 14:12:31 GMT]]></title><description><![CDATA[<p>ZubX schrieb:</p>
<blockquote>
<p>Hallo Forum,</p>
<p>wie komme ich vom Iterator der Liste wieder zu dem ursprünglichem Objekt?</p>
<pre><code class="language-cpp">// Ich fülle die Objekte so in die Liste ein:
std::list&lt;MyClass&gt; liste;
MyClass *oMyClassObj = new MyClass();
liste.push_back(*oMyClassObj);
</code></pre>
</blockquote>
<p>Ich hoffe, du löscht oMyClassObj (ist das ein Ritual? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Oh-Du-Mein-Klassen-Objekt... j/k) danach auch wieder.</p>
<blockquote>
<pre><code class="language-cpp">//Wie komm ich nun wieder zum Objekt?
for (std::list&lt;MyClass &gt;::const_iterator oIter = liste.begin();
	oIter != liste.end(); 
	oIter++) {

	oIter-&gt;ShowMessagebox(); // Funktioniert.
	const MyClass *abc = oIter; // Geht nicht!
}
</code></pre>
</blockquote>
<p>it ist der Iterator.<br />
*it ist ein lvalue, dass auf das Objekt verweist<br />
&amp;*it ist demzufolge ein Zeiger, der auf das Objekt zeigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363387</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 11 Sep 2007 14:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Wie vom Iterator zum Objekt? on Tue, 11 Sep 2007 14:14:34 GMT]]></title><description><![CDATA[<p>(erledigt)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363389</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 11 Sep 2007 14:14:34 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Wie vom Iterator zum Objekt? on Tue, 11 Sep 2007 14:14:16 GMT]]></title><description><![CDATA[<p>*oIter</p>
<p>Aber das hier:</p>
<pre><code class="language-cpp">// Ich fülle die Objekte so in die Liste ein:
std::list&lt;MyClass&gt; liste; // ok
MyClass *oMyClassObj = new MyClass(); // ne
liste.push_back(*oMyClassObj); // ne

// ENTWEDER: MyClass hat einen guten Copy-Constructor:
std::list&lt;MyClass&gt; liste;
MyClass my_obj = MyClass();
liste.push_back(my_obj);

(in dem fall: *iter)

// ODER: MyClass als Pointer verwenden
sd::list&lt;MyClass*&gt; ptrliste;
MyClass* my_obj = new MyClass();
liste.push_back(my_obj);

(in dem fall: *(*iter))
</code></pre>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363390</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Tue, 11 Sep 2007 14:14:16 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Wie vom Iterator zum Objekt? on Tue, 11 Sep 2007 14:27:18 GMT]]></title><description><![CDATA[<p>Oder:</p>
<pre><code class="language-cpp">boost::ptr_list&lt;MyClass&gt; liste;
MyClass *obj = new MyClass;
liste.push_back(obj);

//oder

std::list&lt;boost::shared_ptr&lt;MyClass&gt; &gt; liste;
MyClass *obj = new MyClass;
liste.push_back(obj);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1363404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363404</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Tue, 11 Sep 2007 14:27:18 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Wie vom Iterator zum Objekt? on Tue, 11 Sep 2007 14:35:51 GMT]]></title><description><![CDATA[<p>Vielen Dank <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="🙂"
    /><br />
Das war ja nur ein Beispiel um den Sachverhalt zu verdeutlichen. Wie das mit delte läuft weiß ich natürlich...</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/201">@Sidewinder</a>: Was meinst Du mit gutem CopyContruktor? Soweit ich weiß fügt der Kompiler einen ein wenn ich keinen definiert habe. Dieser CC kopiert dann alle privaten Variablen. Was könnte da schief gehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363415</guid><dc:creator><![CDATA[ZubX]]></dc:creator><pubDate>Tue, 11 Sep 2007 14:35:51 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Wie vom Iterator zum Objekt? on Tue, 11 Sep 2007 14:41:20 GMT]]></title><description><![CDATA[<p>Falls du innerhalb der Klasse dynamischen Speicher anforderst, musst du den innerhalb des Copy-Constructors kopieren. Da das neue Objekt neuen dynamischen Speicher benötigt.</p>
<p>Das du solchen Speicher innerhalb von MyClass benutzt habe ich gedacht, weil du auch MyClass dynamisch am Heap anlegen willst was eher bei großen Objekten der Fall ist, und große Objekte haben meistens auch viel dynamischen Speicher. allokiert.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363419</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Tue, 11 Sep 2007 14:41:20 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Wie vom Iterator zum Objekt? on Tue, 11 Sep 2007 14:48:19 GMT]]></title><description><![CDATA[<p>Darüber habe ich noch nicht nachgedacht. MyClass hat in der Tat Heap Speicher. Das wäre mir später wenn das Objekt aus der Liste kommt auf die Füße gefallen...</p>
<p>Vielen Dank <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/1363422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363422</guid><dc:creator><![CDATA[ZubX]]></dc:creator><pubDate>Tue, 11 Sep 2007 14:48:19 GMT</pubDate></item></channel></rss>