<?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[Pointer auf abgeleitete Klassen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hoffe meine Frage ist nicht allzu unqualifiziert. Ich habe folgendes prinzipielles Problem:</p>
<p>BasisKlasse{<br />
//hier gibts einige Methoden und Konstruktoren<br />
};</p>
<p>AbgeleiteteKlasse : public BasisKlasse{<br />
Typ eineMethode();<br />
};</p>
<p>Irgendwo im Code möchte ich von &quot;AbgeleiteteKlasse&quot; Gebrauch machen. Also:<br />
BasisKlasse *b = new AbgeleiteteKlasse();</p>
<p>Nun möchte ich *b natürlich als &quot;BasisKlasse&quot; verwenden, und bei bedarf auf die zusätzliche Funktionalität in &quot;AbgeleiteteKlasse&quot; verfügen, z.B.:<br />
b-&gt;eineMethode();</p>
<p>Wieso funktioniert sowas nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/126908/pointer-auf-abgeleitete-klassen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 22:13:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/126908.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 19 Nov 2005 19:27:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer auf abgeleitete Klassen on Sat, 19 Nov 2005 19:27:30 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hoffe meine Frage ist nicht allzu unqualifiziert. Ich habe folgendes prinzipielles Problem:</p>
<p>BasisKlasse{<br />
//hier gibts einige Methoden und Konstruktoren<br />
};</p>
<p>AbgeleiteteKlasse : public BasisKlasse{<br />
Typ eineMethode();<br />
};</p>
<p>Irgendwo im Code möchte ich von &quot;AbgeleiteteKlasse&quot; Gebrauch machen. Also:<br />
BasisKlasse *b = new AbgeleiteteKlasse();</p>
<p>Nun möchte ich *b natürlich als &quot;BasisKlasse&quot; verwenden, und bei bedarf auf die zusätzliche Funktionalität in &quot;AbgeleiteteKlasse&quot; verfügen, z.B.:<br />
b-&gt;eineMethode();</p>
<p>Wieso funktioniert sowas nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921672</guid><dc:creator><![CDATA[darkblue]]></dc:creator><pubDate>Sat, 19 Nov 2005 19:27:30 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf abgeleitete Klassen on Sat, 19 Nov 2005 19:36:00 GMT]]></title><description><![CDATA[<p>Polymorphie hilft dir bei &quot;Rufe die richtige Methode auf&quot;, nicht bei &quot;Rufe eine Methode die nur in der abgeleiteten Klasse existiert auf&quot;!</p>
<pre><code class="language-cpp">class Base
{
    virtual void foo ();
};

class Derived1 : public Base
{
    virtual void foo () { cout &lt;&lt; &quot;Derived1&quot; &lt;&lt; endl; }
};

class Derived2 : public Base
{
    virtual void foo () { cout &lt;&lt; &quot;Derived2&quot; &lt;&lt; endl; }
};

...

Base* base = new Derived1();
base-&gt;foo(); // Derived1::foo()
</code></pre>
<p>Aber die Methode muss zumindest im abstrakten Zustand schon in der Basisklasse vorhanden sein.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921681</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 19 Nov 2005 19:36:00 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf abgeleitete Klassen on Sat, 19 Nov 2005 19:49:31 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort! Wenn ich die Methode als &quot;virtual&quot; in der BasisKlasse vordeklariere, dann klappt's <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="🙂"
    /> Ist dies die einzige Möglichkeit? Die Basisklasse könnte ja schon &quot;fertig&quot; sein, und man möchte nur noch zusätzlich was hinzufügen, ohne die Basisklasse zu verändern.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921692</guid><dc:creator><![CDATA[darkblue]]></dc:creator><pubDate>Sat, 19 Nov 2005 19:49:31 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf abgeleitete Klassen on Sat, 19 Nov 2005 19:55:35 GMT]]></title><description><![CDATA[<p>Du kannst natürlich auch etwas in der abgeleiteten Klasse hinzufügen (meistens der Sinn von abgeleiteten Klassen). Diese zusätzliche Funktionalität ist dann aber nicht über einen Basisklassen-Zeiger aufrufbar (woher soll der auch davon wissen).</p>
<p>Bist du dir also sicher ein Derived1-Objekt zu besitzen kannst du einen Cast durchführen (Stichwort: dynamic_cast) und den Basisklassen-Zeiger auf einen Derived1-Zeiger casten. Dann sind abgeleitete Funktionen ebenfalls aufrufbar. Natürlich hat das dann nichts mehr mit Polymorphie zu tun.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921699</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 19 Nov 2005 19:55:35 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf abgeleitete Klassen on Sat, 19 Nov 2005 20:12:56 GMT]]></title><description><![CDATA[<p>Ich habe mir mal dynamic_cast angeschaut und damit klappt's wunderbar!</p>
<p>Danke!</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921706</guid><dc:creator><![CDATA[darkblue]]></dc:creator><pubDate>Sat, 19 Nov 2005 20:12:56 GMT</pubDate></item></channel></rss>