<?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[vererbungsproblem]]></title><description><![CDATA[<p>hi,</p>
<p>ich denke mal, das gabs hier schon öfter, aber versuche es trotzdem:</p>
<p>ich habe eine basisklasse (B), in der eine methode m() implementiert ist.<br />
dann kommen haufenweise klassen, die von B abgeleitet sind, und u.a. m() neu implementieren.<br />
wie kann ich jetzt die ganzen abgeleiteten klassen in eine liste (oder von mir aus eine zeigerliste) speichern, um dann für alle m() hintereinander aufzurufen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/118361/vererbungsproblem</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 09:20:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/118361.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Aug 2005 15:53:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vererbungsproblem on Wed, 17 Aug 2005 15:53:35 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich denke mal, das gabs hier schon öfter, aber versuche es trotzdem:</p>
<p>ich habe eine basisklasse (B), in der eine methode m() implementiert ist.<br />
dann kommen haufenweise klassen, die von B abgeleitet sind, und u.a. m() neu implementieren.<br />
wie kann ich jetzt die ganzen abgeleiteten klassen in eine liste (oder von mir aus eine zeigerliste) speichern, um dann für alle m() hintereinander aufzurufen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/854341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854341</guid><dc:creator><![CDATA[&#x27;&#x27;m&#x27;&#x27;]]></dc:creator><pubDate>Wed, 17 Aug 2005 15:53:35 GMT</pubDate></item><item><title><![CDATA[Reply to vererbungsproblem on Wed, 17 Aug 2005 16:00:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">/* m ist virtual */
struct callm
{
    void operator()(Base* b){b-&gt;m();}
};
struct del
{
    void operator()(Base* b){delete b;}
};

/* irgendwo anders */
std::list&lt;Base*&gt; mybaselist;
mybaselist.push_back(new Child()); //Child ist von Base abgeleitet.
/* noch mehr in die Liste einfügen */
/* ... */

/* m aufrufen */

std::for_each(mybaselist.begin(),mybaselist.end(),callm()); 

/* und jetzt löschen wir die ganze liste auf einmal */
std::for_each(mybaselist.begin(),mybaselist.end(),del());
mybaselist.clear();//Pointer auch wieder löschen...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/854344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854344</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Wed, 17 Aug 2005 16:00:56 GMT</pubDate></item><item><title><![CDATA[Reply to vererbungsproblem on Wed, 17 Aug 2005 16:20:37 GMT]]></title><description><![CDATA[<p>aha, ok, danke, alles klar.</p>
<pre><code class="language-cpp">struct del
{
    void operator()(Base* b){delete b;} // &lt;= aber was genau bedeutet das in der mittleren klammer?
};
</code></pre>
<p>heißt das, dass man</p>
<pre><code class="language-cpp">Base *a=new Base; 
del()(a);
</code></pre>
<p>schreiben kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/854353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854353</guid><dc:creator><![CDATA[&#x27;&#x27;m&#x27;&#x27;]]></dc:creator><pubDate>Wed, 17 Aug 2005 16:20:37 GMT</pubDate></item><item><title><![CDATA[Reply to vererbungsproblem on Wed, 17 Aug 2005 16:23:48 GMT]]></title><description><![CDATA[<p>Nein, del ist objekt und keine Funktion.<br />
Korrekt wäre es so:</p>
<pre><code class="language-cpp">Base* b = new Base();
del d;
d(b);//aufruf des op()
</code></pre>
<p>Beachte bitte das von Abgeleiteten Klassen<br />
der Konstruktor virtual sein sollte, und<br />
das wenn du die Liste mit std::for_each und del() löschst,<br />
auch alle elemente der Liste mit new erstellt sein sollten.<br />
Und danach nicht mehr gebraucht werden... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/854356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854356</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Wed, 17 Aug 2005 16:23:48 GMT</pubDate></item></channel></rss>