<?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[Klassenname während der laufzeit Ermitteln?]]></title><description><![CDATA[<p>Möglichkeit zu ermittlung der Klasse wärhden der laufzeit?</p>
<p>Sowas in der Art:</p>
<pre><code class="language-cpp">class Basis{

.
.
.

};
class A : public Basis{

.
.
.

};
class B : public Basis{

.
.
.

};

Basis *p[2];
p[0]= new A();
p[1]= new B();

p[0]-&gt;getClass() == &quot;A&quot;   //&lt;-- Sowas in
p[1]-&gt;getClass() == &quot;B&quot;   //&lt;-- der Art
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/177193/klassenname-während-der-laufzeit-ermitteln</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 22:05:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177193.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Mar 2007 03:44:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassenname während der laufzeit Ermitteln? on Thu, 29 Mar 2007 04:00:00 GMT]]></title><description><![CDATA[<p>Möglichkeit zu ermittlung der Klasse wärhden der laufzeit?</p>
<p>Sowas in der Art:</p>
<pre><code class="language-cpp">class Basis{

.
.
.

};
class A : public Basis{

.
.
.

};
class B : public Basis{

.
.
.

};

Basis *p[2];
p[0]= new A();
p[1]= new B();

p[0]-&gt;getClass() == &quot;A&quot;   //&lt;-- Sowas in
p[1]-&gt;getClass() == &quot;B&quot;   //&lt;-- der Art
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1255049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255049</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 29 Mar 2007 04:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenname während der laufzeit Ermitteln? on Thu, 29 Mar 2007 05:06:00 GMT]]></title><description><![CDATA[<p>auf die Art geht es nur, wenn du die methode selbst schreibst <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>
<p>du kannst noch mit typeid arbeiten. da kriegst du zwar den namen einer klasse mit</p>
<pre><code class="language-cpp">typeid(p[0]).name()
</code></pre>
<p>allerdings ist der rückgabewert durch den standard nicht weiter definiert. du musst also nicht unbedingt &quot;A&quot; rauskriegen, sondern kannst auch zb &quot;ABCDEZeichensalat__Class__A&quot; bekommen.</p>
<p>was aber geht, ist die typeids vergleichen:</p>
<pre><code class="language-cpp">//wichtig, es dürfen keine referenzen oder zeiger der objekte genommen werden
//also vorher immer dereferenzieren
if(typeid(*(p[0]))==typeid(A)){/*ja, p[0] ist ein A*/}
//geht auch mit den namen
//wie sinnvoll das ist? nicht sehr ;)
if(typeid(*(p[0])).name()==typeid(A).name()){

//den rückgabewert von typeid kann man auch speichern
std::type_info info=typeid(*(p[0]));
</code></pre>
<p>wenn du nur wissen willst, ob es eine Klasse A ist, um dann zu casten kannst du einen dynamic_cast verwenden:</p>
<pre><code class="language-cpp">A* obj = dynamic_cast&lt;A*&gt;(p[0]);
if(obj!=NULL){/*casten hat geklappt, dies ist ein A*/}
</code></pre>
<p>für all diese möglichkeiten musst du aber bei deinem compiler die RTTI anschalten, sonst wird nur ne exception geworfen <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>
<p>zuletzt ist noch zu sagen, dass all diese möglichkeiten nicht unbedingt guter stil sind, man sollte sich also 10 mal überlegen, ob man das wirklich braucht <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/1255053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255053</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 29 Mar 2007 05:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenname während der laufzeit Ermitteln? on Thu, 29 Mar 2007 05:12:26 GMT]]></title><description><![CDATA[<p>hört sich schonmal gut an! Wenn ich von meinem Code desigen ausgehe, ist es immer eindeutig wo welche klasesnTypen vorhanden sind.. aber so als sicherheits abfarage und evtl. zu test/debug zwecken wäre das doch mal sinnvoll!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255055</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 29 Mar 2007 05:12:26 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenname während der laufzeit Ermitteln? on Thu, 29 Mar 2007 05:21:56 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>hört sich schonmal gut an! Wenn ich von meinem Code desigen ausgehe, ist es immer eindeutig wo welche klasesnTypen vorhanden sind.. aber so als sicherheits abfarage und evtl. zu test/debug zwecken wäre das doch mal sinnvoll!</p>
</blockquote>
<p>für sowas gibt es debugger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255058</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 29 Mar 2007 05:21:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenname während der laufzeit Ermitteln? on Thu, 29 Mar 2007 10:48:10 GMT]]></title><description><![CDATA[<p>wenn es dir nicht reicht such nach RTTI (Run-Time-Type-ID)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255216</guid><dc:creator><![CDATA[Stelfer]]></dc:creator><pubDate>Thu, 29 Mar 2007 10:48:10 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenname während der laufzeit Ermitteln? on Thu, 29 Mar 2007 13:34:59 GMT]]></title><description><![CDATA[<p>Wobei das I nicht für ID, sondern Information steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255350</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 29 Mar 2007 13:34:59 GMT</pubDate></item></channel></rss>