<?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[RTTI vermeiden]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine virtuelle Basisklasse B und zwei davon abgeleitete D1 und D2. Jetzt will ich entscheiden, ob ein Objekt B ein D1 oder ein D2 ist. Das ginge natürlich mit typeid (RTTI), aber die soll man ja vermeiden.</p>
<p>Wie löse ich das am besten? Eine virtual = 0-Funktion in B einbauen und sie in D1 und D2 verschieden überladen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/277383/rtti-vermeiden</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 22:51:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/277383.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Nov 2010 20:18:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to RTTI vermeiden on Wed, 17 Nov 2010 20:18:50 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine virtuelle Basisklasse B und zwei davon abgeleitete D1 und D2. Jetzt will ich entscheiden, ob ein Objekt B ein D1 oder ein D2 ist. Das ginge natürlich mit typeid (RTTI), aber die soll man ja vermeiden.</p>
<p>Wie löse ich das am besten? Eine virtual = 0-Funktion in B einbauen und sie in D1 und D2 verschieden überladen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1981937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981937</guid><dc:creator><![CDATA[hmmmmmmmmmm]]></dc:creator><pubDate>Wed, 17 Nov 2010 20:18:50 GMT</pubDate></item><item><title><![CDATA[Reply to RTTI vermeiden on Wed, 17 Nov 2010 20:24:33 GMT]]></title><description><![CDATA[<p>Du musst das nicht entscheiden, sondern einfach machen lassen. Der Weg dazu sind virtuelle Funktionen, ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1981940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981940</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 17 Nov 2010 20:24:33 GMT</pubDate></item><item><title><![CDATA[Reply to RTTI vermeiden on Wed, 17 Nov 2010 20:51:38 GMT]]></title><description><![CDATA[<p>Aber nicht auf die Idee kommen, RTTI mit <code>virtual</code> nachzubauen.</p>
<pre><code class="language-cpp">virtual bool BinIchKlasseD1() const; // Nein!
</code></pre>
<p>Lieber gleich die benötigte Funktionalität polymorph implementieren, sodass auf User-Seite gar nie eine Fallunterscheidung auftritt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1981954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981954</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 17 Nov 2010 20:51:38 GMT</pubDate></item><item><title><![CDATA[Reply to RTTI vermeiden on Wed, 17 Nov 2010 20:52:56 GMT]]></title><description><![CDATA[<p>Desweiteren muss die Methode von B nicht unbedingt pure virtual ( = 0 ) sein.<br />
solange die Methode virtuell ist, wird automatisch bei einem B* der auf ein D1 oder D2 zeigt die jeweilige Methode von D1 oder D2 aufgerufen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1981955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981955</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Wed, 17 Nov 2010 20:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to RTTI vermeiden on Wed, 17 Nov 2010 21:06:13 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Aber nicht auf die Idee kommen, RTTI mit <code>virtual</code> nachzubauen.</p>
<pre><code class="language-cpp">virtual bool BinIchKlasseD1() const; // Nein!
</code></pre>
<p>Lieber gleich die benötigte Funktionalität polymorph implementieren, sodass auf User-Seite gar nie eine Fallunterscheidung auftritt.</p>
</blockquote>
<p>Oh, OK. Danke für die Warnung.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1981963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981963</guid><dc:creator><![CDATA[hmmmmmmmmmm]]></dc:creator><pubDate>Wed, 17 Nov 2010 21:06:13 GMT</pubDate></item><item><title><![CDATA[Reply to RTTI vermeiden on Wed, 17 Nov 2010 21:16:33 GMT]]></title><description><![CDATA[<p>DrakoXP schrieb:</p>
<blockquote>
<p>Desweiteren muss die Methode von B nicht unbedingt pure virtual ( = 0 ) sein.</p>
</blockquote>
<p>Wenn in <code>B</code> jedoch keine sinnvolle Implementierung möglich ist, schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1981973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981973</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 17 Nov 2010 21:16:33 GMT</pubDate></item><item><title><![CDATA[Reply to RTTI vermeiden on Thu, 18 Nov 2010 01:22:33 GMT]]></title><description><![CDATA[<p>hmmmmmmmmmm schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>ich habe eine virtuelle Basisklasse B und zwei davon abgeleitete D1 und D2. Jetzt will ich entscheiden, ob ein Objekt B ein D1 oder ein D2 ist. Das ginge natürlich mit typeid (RTTI), aber die soll man ja vermeiden.</p>
<p>Wie löse ich das am besten? Eine virtual = 0-Funktion in B einbauen und sie in D1 und D2 verschieden <strong>überladen?</strong></p>
</blockquote>
<p>Überschreiben, nicht überladen.<br />
Überladen würde in dem Fall gar nix bringen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982040</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 18 Nov 2010 01:22:33 GMT</pubDate></item></channel></rss>