<?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[[erledigt]erst zweites Objekt in boost::ptr_list funktioniert]]></title><description><![CDATA[<p>Weshalb funktioniert hier erst das 2. Element und die folgenden?</p>
<pre><code class="language-cpp">#include &lt;list&gt;
#include &lt;ptr_list&gt;

using namespace boost;
using namespace std;

class A
{
  public:
    A(){};
    void foo();
};

class B : public A
{
public:
  B(){};
}

int main()
{
  list&lt;B&gt; Bs;
  ptr_list&lt;A&gt; pAs;

  B Erstes = A();
  B Zweites = A();

  As.push_back(Erstes);

  pAs.push_back(&amp;As.back);

  As.push_back(Zweites);

  pAs.push_back(&amp;As.back);

  //...

  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/264874/erledigt-erst-zweites-objekt-in-boost-ptr_list-funktioniert</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 16:08:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264874.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Apr 2010 08:22:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [erledigt]erst zweites Objekt in boost::ptr_list funktioniert on Wed, 14 Apr 2010 09:27:38 GMT]]></title><description><![CDATA[<p>Weshalb funktioniert hier erst das 2. Element und die folgenden?</p>
<pre><code class="language-cpp">#include &lt;list&gt;
#include &lt;ptr_list&gt;

using namespace boost;
using namespace std;

class A
{
  public:
    A(){};
    void foo();
};

class B : public A
{
public:
  B(){};
}

int main()
{
  list&lt;B&gt; Bs;
  ptr_list&lt;A&gt; pAs;

  B Erstes = A();
  B Zweites = A();

  As.push_back(Erstes);

  pAs.push_back(&amp;As.back);

  As.push_back(Zweites);

  pAs.push_back(&amp;As.back);

  //...

  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1882533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882533</guid><dc:creator><![CDATA[halo]]></dc:creator><pubDate>Wed, 14 Apr 2010 09:27:38 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt]erst zweites Objekt in boost::ptr_list funktioniert on Wed, 14 Apr 2010 08:51:31 GMT]]></title><description><![CDATA[<p>halo schrieb:</p>
<blockquote>
<p>Weshalb funktioniert hier erst das 2. Element und die folgenden?</p>
</blockquote>
<p>Würdest du &quot;funktioniert&quot; mal genauer definieren?</p>
<p>Zumal &lt;boost/ptr_list.hpp&gt; sich soviel ich weiß um Speicherverwaltung kümmert, und Stackobjekte hier komplett fehl am Platze sind (Ein delete auf einen Speicherbereich der nie mit new alloziert wurde ist jedenfalls mehr als problematisch).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882552</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 14 Apr 2010 08:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt]erst zweites Objekt in boost::ptr_list funktioniert on Wed, 14 Apr 2010 09:18:23 GMT]]></title><description><![CDATA[<blockquote>
<p>Zumal &lt;boost/ptr_list.hpp&gt; sich soviel ich weiß um Speicherverwaltung kümmert</p>
</blockquote>
<p>hmm ok, ich hab jetzt im Code oben noch etwas geändert, aber wenn sich boost::ptr_list um die Speicherverwaltung kümmert, dann bringts mir nicht wirklich viel.</p>
<p>Also die Funktion foo vom 1. Objekt wird nicht aufgerufen.</p>
<p>Ich werde es jetzt einmal mit list&lt;A*&gt; versuchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882567</guid><dc:creator><![CDATA[halo]]></dc:creator><pubDate>Wed, 14 Apr 2010 09:18:23 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt]erst zweites Objekt in boost::ptr_list funktioniert on Wed, 14 Apr 2010 09:27:21 GMT]]></title><description><![CDATA[<p>und es funktioniert, scheint irgendwas mit boost::ptr_list zu tun gehabt zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882576</guid><dc:creator><![CDATA[halo]]></dc:creator><pubDate>Wed, 14 Apr 2010 09:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt]erst zweites Objekt in boost::ptr_list funktioniert on Wed, 14 Apr 2010 09:28:01 GMT]]></title><description><![CDATA[<p>halo schrieb:</p>
<blockquote>
<blockquote>
<p>Zumal &lt;boost/ptr_list.hpp&gt; sich soviel ich weiß um Speicherverwaltung kümmert</p>
</blockquote>
<p>hmm ok, ich hab jetzt im Code oben noch etwas geändert, aber wenn sich boost::ptr_list um die Speicherverwaltung kümmert, dann bringts mir nicht wirklich viel.</p>
<p>Also die Funktion foo vom 1. Objekt wird nicht aufgerufen.</p>
<p>Ich werde es jetzt einmal mit list&lt;A*&gt; versuchen.</p>
</blockquote>
<p>Was glaubst du, warum es ptr_list heißt? Weil es nur für Pointer ist. Sonst kannst du auch std::list nehmen.</p>
<p>Der Vorteil von ptr_list ist, dass im Destruktor auch gleich delete auf alle enthaltenen Elemente aufgerufen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882579</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Wed, 14 Apr 2010 09:28:01 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt]erst zweites Objekt in boost::ptr_list funktioniert on Wed, 14 Apr 2010 09:31:04 GMT]]></title><description><![CDATA[<p>halo schrieb:</p>
<blockquote>
<blockquote>
<p>Zumal &lt;boost/ptr_list.hpp&gt; sich soviel ich weiß um Speicherverwaltung kümmert</p>
</blockquote>
<p>hmm ok, ich hab jetzt im Code oben noch etwas geändert, aber wenn sich boost::ptr_list um die Speicherverwaltung kümmert, dann bringts mir nicht wirklich viel.</p>
</blockquote>
<p>Wenn keine Speicherverwaltung gewünscht wird, sind die Standardcontainer die bessere Wahl. Aber davon abgesehen, enthält der uns gezeigte Code auch...</p>
<p>halo schrieb:</p>
<blockquote>
<p>Also die Funktion foo vom 1. Objekt wird nicht aufgerufen.</p>
</blockquote>
<p>...keinen Aufruf der Methode foo.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882582</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 14 Apr 2010 09:31:04 GMT</pubDate></item><item><title><![CDATA[Reply to [erledigt]erst zweites Objekt in boost::ptr_list funktioniert on Wed, 14 Apr 2010 20:35:28 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>...keinen Aufruf der Methode foo.</p>
</blockquote>
<p>ja stimmt den hab ich vergessen, aber ich hab ja</p>
<pre><code class="language-cpp">//...
</code></pre>
<p>das hier geschrieben <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883046</guid><dc:creator><![CDATA[halo]]></dc:creator><pubDate>Wed, 14 Apr 2010 20:35:28 GMT</pubDate></item></channel></rss>