<?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[Polymorphismus: Datentyp ermitteln]]></title><description><![CDATA[<p>Hallo.<br />
Ich habe eine Basisklasse und die daraus abgeleiteten Klassen. Wenn ich nun ein Array von Zeigern auf die Basisklasse erstelle und durch Bedingungen diverse Objekte von den abgeleiteten Klassen dem Array hinzufuege, ist es dann irgendwie moeglich den Datentyp eines Array-Elements zu ermitteln? (Datentyp steht zur Laufzeit nicht fest)<br />
So aehnlich habe ich mir das vorgestellt:</p>
<pre><code class="language-cpp">Basisklasse* bp[10];
bp[0] = new AbgeleiteteKlasse1;
bp[1] = new AbgeleiteteKlasse1;

if (bp[0] ist vom Datentyp AbgeleiteteKlasse1) machwas;
</code></pre>
<p>Gruss<br />
Cartman</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235097/polymorphismus-datentyp-ermitteln</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 07:10:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235097.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Feb 2009 16:40:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Polymorphismus: Datentyp ermitteln on Wed, 25 Feb 2009 16:40:46 GMT]]></title><description><![CDATA[<p>Hallo.<br />
Ich habe eine Basisklasse und die daraus abgeleiteten Klassen. Wenn ich nun ein Array von Zeigern auf die Basisklasse erstelle und durch Bedingungen diverse Objekte von den abgeleiteten Klassen dem Array hinzufuege, ist es dann irgendwie moeglich den Datentyp eines Array-Elements zu ermitteln? (Datentyp steht zur Laufzeit nicht fest)<br />
So aehnlich habe ich mir das vorgestellt:</p>
<pre><code class="language-cpp">Basisklasse* bp[10];
bp[0] = new AbgeleiteteKlasse1;
bp[1] = new AbgeleiteteKlasse1;

if (bp[0] ist vom Datentyp AbgeleiteteKlasse1) machwas;
</code></pre>
<p>Gruss<br />
Cartman</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1670173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1670173</guid><dc:creator><![CDATA[Eric Cartman]]></dc:creator><pubDate>Wed, 25 Feb 2009 16:40:46 GMT</pubDate></item><item><title><![CDATA[Reply to Polymorphismus: Datentyp ermitteln on Wed, 25 Feb 2009 16:46:52 GMT]]></title><description><![CDATA[<p>Du könntest <code>if (dynamic_cast&lt;datentyp&gt;)</code> machen; <code>dynamic_cast</code> gibt 0 zurück falls es nicht funktioniert. Oder du könntest <code>typeid</code> benutzen.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1670179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1670179</guid><dc:creator><![CDATA[*rant*]]></dc:creator><pubDate>Wed, 25 Feb 2009 16:46:52 GMT</pubDate></item><item><title><![CDATA[Reply to Polymorphismus: Datentyp ermitteln on Wed, 25 Feb 2009 16:55:08 GMT]]></title><description><![CDATA[<p>Danke <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>
<p>gruss<br />
Cartman</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1670190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1670190</guid><dc:creator><![CDATA[Eric Cartman]]></dc:creator><pubDate>Wed, 25 Feb 2009 16:55:08 GMT</pubDate></item><item><title><![CDATA[Reply to Polymorphismus: Datentyp ermitteln on Wed, 25 Feb 2009 17:13:30 GMT]]></title><description><![CDATA[<p>normalerweise muss man allerdings nicht wissen von welchem abgeleiteten Typ ein spezielles Objekt ist. Aktionen die für die Klasse des Objektes speziell sind sollten meistens auch innerhalb der entsprechenden Klasse implementiert sein. Dann ruft man einfach die entsprechende Methode auf und die abgeleiteten Klassen wissen selbst was zu tun ist. Das ist der Sinn von Polymorphismus und virtuellen Funktionen.<br />
Dein Beispiel sähe dann so aus:</p>
<pre><code class="language-cpp">class Basisklasse 
{
public:
  virtual void ClassSpecificAction() 
  {}  //default-implementierung: nichts tun
};

class AbgeleiteteKlasse1 : public Basisklasse
{
public:
  void ClassSpecificAction()
  {
    machwas();
  }
};

int main()
{
  Basisklasse* bp[10];
  bp[0] = new AbgeleiteteKlasse1;
  bp[1] = new AbgeleiteteKlasse1;
  //if (bp[0] ist vom Datentyp AbgeleiteteKlasse1) machwas;
  bp[0]-&gt;ClassSpecificAction();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1670204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1670204</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 25 Feb 2009 17:13:30 GMT</pubDate></item></channel></rss>