<?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[Klasse eines Objektes bestimmen?]]></title><description><![CDATA[<p>Kurze Frage: Gibt es irgendeine Möglichkeit, zur Laufzeit zu bestimmen, von welcher Klasse ein gegebenes Objekt eine Instanz ist, außer über irgendwelche speziellen if- oder case-Konstruktionen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178438/klasse-eines-objektes-bestimmen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 21:15:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178438.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Apr 2007 10:27:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 10:27:34 GMT]]></title><description><![CDATA[<p>Kurze Frage: Gibt es irgendeine Möglichkeit, zur Laufzeit zu bestimmen, von welcher Klasse ein gegebenes Objekt eine Instanz ist, außer über irgendwelche speziellen if- oder case-Konstruktionen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263685</guid><dc:creator><![CDATA[Sniffman]]></dc:creator><pubDate>Wed, 11 Apr 2007 10:27:34 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 10:30:05 GMT]]></title><description><![CDATA[<p>GetRuntimeclass....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263687</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 11 Apr 2007 10:30:05 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 10:33:06 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>GetRuntimeclass....</p>
</blockquote>
<p>das gibts nur bei MFC <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="😉"
    /><br />
OP: RTTI einschalten und dann 'typeid' o.ä. aufrufen<br />
<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>
]]></description><link>https://www.c-plusplus.net/forum/post/1263692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263692</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Wed, 11 Apr 2007 10:33:06 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 10:48:49 GMT]]></title><description><![CDATA[<p>Ja, und zwar wie folgt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;typeinfo&gt;

using namespace std;

class Test
{
    public:
        Test() : myInt(5)
        {}
        virtual int GetMyInt() {return myInt;}
    private:
        int myInt;
};

int main()
{
    Test TestObj;
    cout &lt;&lt; &quot;Name der Klasse: &quot;;
    cout &lt;&lt; typeid(TestObj).name() &lt;&lt; endl; //Gibt auf meinem Compiler &quot;4Test&quot; aus
    return 0;
}
</code></pre>
<p>Ansonsten kannst du dir auch mal die restlichen Elemente/Methoden von typeinfo angucken (also die außer name())</p>
<p>Felix</p>
<p>P.S.: IIRC musste die Klasse allerdings (mindestens) eine virtuelle Methode haben. Es geht auf meinem Compiler allerdings auch ohne...</p>
<p>EDIT: Hier gibts noch nen interessanten Artikel dazu. <a href="http://www.informatik.fh-luebeck.de/et/ti/Seehusen/Publications/UnixMail/4-231.pdf" rel="nofollow">http://www.informatik.fh-luebeck.de/et/ti/Seehusen/Publications/UnixMail/4-231.pdf</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263701</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Wed, 11 Apr 2007 10:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 10:53:56 GMT]]></title><description><![CDATA[<p>Nun, auf meinem offenbar nicht. Jetzt aber schon, dankeschön.</p>
<p>Nur dass ich jetzt diese sonst recht überflüssige virtuelle Funktion mit mir rumschleppe. <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/1263713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263713</guid><dc:creator><![CDATA[Sniffman]]></dc:creator><pubDate>Wed, 11 Apr 2007 10:53:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 10:58:32 GMT]]></title><description><![CDATA[<p>Randfrage: Wozu musst du das überhaupt wissen? Normalerweise zeugt es von schlechtem Design, wenn du ein Objekt nach seinem Typ <em>fragen</em> mußt - entweder du kennst den Typ oder er sollte egal sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263716</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 11 Apr 2007 10:58:32 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 11:12:56 GMT]]></title><description><![CDATA[<p>Ich habe ein Array voll Zeigern auf verschiedene abgeleitete Klassen einer Basisklasse, dass vorher aus einer vom User generierten Datei ausgelesen und erstellt wurde. Wenn ich da jetzt durchloope, weiß ich also nicht genau, welche abgeleitete Klasse an welcher Stelle kommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263729</guid><dc:creator><![CDATA[Sniffman]]></dc:creator><pubDate>Wed, 11 Apr 2007 11:12:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 11:16:56 GMT]]></title><description><![CDATA[<p>Sniffman schrieb:</p>
<blockquote>
<p>....weiß ich also nicht genau, welche abgeleitete Klasse an welcher Stelle kommt.</p>
</blockquote>
<p>Gut - aber wozu brauchst Du das zu wissen ?<br />
Doch wohl nicht, um Elemente zu nutzen, die die Basisklasse nicht besitzt, oder ? <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>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263735</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 11 Apr 2007 11:16:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 11:21:09 GMT]]></title><description><![CDATA[<p>Um dem Benutzer anzuzeigen, welche Klasse es denn nun war. <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>Außerdem muss ich kleinlaut zugeben, dass ich gerade nicht ganz verstehe, was daran böse wäre, nicht gemeinsame Elemente zu nutzen. Ist das nicht der Sinn abgeleiteter Klassen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263741</guid><dc:creator><![CDATA[Sniffman]]></dc:creator><pubDate>Wed, 11 Apr 2007 11:21:09 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 11:27:41 GMT]]></title><description><![CDATA[<p>Der Vorteil der abgeleiteten Klassen ist gerade, daß es dich nicht kümmern muß, welche genau du da vorliegen hast. Die Basisklasse bestimmt, was du machen kannst und jede davon abgeleitete Klasse kümmert sich um selbst darum, wie sie es machen kann.</p>
<p>Und wenn die Klassen so verschieden sind, daß du keine ausreichende gemeinsame Schnittstelle findest, lohnt sich die (öffentliche) Ableitung nicht mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263744</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 11 Apr 2007 11:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 11:38:24 GMT]]></title><description><![CDATA[<p>Wenn es nur darum geht dem Benutzer das anzuzeigen könnte man dann nicht einfach ein private Attribut std::string classname anlegen und dieses dann über eine virtuelle Methode ausgeben? Wenn nicht, was verhindert es?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263750</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Wed, 11 Apr 2007 11:38:24 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 11:43:04 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>: Ich bin mir ziemlich sicher, dass mein Design noch optimierbar ist. Aber da das auch mein erstes Projekt in C++, inklusive Objektorientierung, ist, nehme ich das vorerst mal nicht ganz so ernst. Ich werde die Dinge aber noch weiter aufräumen und Redundanz entfernen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13317">@Shinja</a>: Naja, wieso sollte ich noch ein Attribut anlegen, wenn ich auch so relativ einfach an die Infos komme? So kann ich mit einer ebenfalls virtuellen Methode für jede abgeleitete Klasse den Namen ausgeben, ohne ein zusätzliches Attribut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263755</guid><dc:creator><![CDATA[Sniffman]]></dc:creator><pubDate>Wed, 11 Apr 2007 11:43:04 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 13:21:01 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich glaube, niemand hat etwas dagegen, sowas in persönlichen (Kennen-)Lernprogrammen zu sehen ... nur in &quot;echtem Code&quot; sollte das nur in Ausnahmefällen vorkommen (&quot;Mit dem Rücken zur Wand ... und einem Messer an der Kehle .... einem sehr, sehr scharfen Messer.&quot;) <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="😃"
    /><br />
Außerdem kann in einem &quot;echten Programm&quot; kein User etwas mit einem Klassennamen anfangen...</p>
<p>insgesamt würde ich aber Shinjas Ansatz unterstützen .. da lernst Du auch gleich ein wenig über virtual functions... <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>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263831</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 11 Apr 2007 13:21:01 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse eines Objektes bestimmen? on Wed, 11 Apr 2007 13:34:54 GMT]]></title><description><![CDATA[<p>Den Namen der Kasse als Attribut halte ich für Überflüssig, da typeid den Zweck erfüllt. Für Logging-Aufgaben ist das typeid nicht schlecht. Ansonst ist das Ding leider ziemlich nutzlos in C++ und dient wirklich nur der Runtime.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263848</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 11 Apr 2007 13:34:54 GMT</pubDate></item></channel></rss>