<?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[static_Cast vs. dynamic_cast]]></title><description><![CDATA[<p>Hi, welchen cast würdet ihr z.B. im folgenden Beispiel nehmen, wobei ClassA von Base und ClassB von ClassA abgeleitet ist?</p>
<pre><code class="language-cpp">Base* base = new ClassB();
ClassA* classA = static_cast&lt;ClassA*&gt;(base);
		if (classA )
		{
</code></pre>
<p>Ich habe hier nur einen static_cast verwendet, da in dem Programmteil nur Objekte von ClassA sowie deren abgeleiteten Klassen verwendet werden und da man dynamic_casts ja nach Möglichkeit vermeiden soll und diese zudem sehr langsam sein sollen. Ist dieses Vorgehen so sinnvoll oder sollte ich doch lieber einen dynamic_cast nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306247/static_cast-vs-dynamic_cast</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 07:36:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306247.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 Jul 2012 17:37:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to static_Cast vs. dynamic_cast on Sun, 22 Jul 2012 17:37:10 GMT]]></title><description><![CDATA[<p>Hi, welchen cast würdet ihr z.B. im folgenden Beispiel nehmen, wobei ClassA von Base und ClassB von ClassA abgeleitet ist?</p>
<pre><code class="language-cpp">Base* base = new ClassB();
ClassA* classA = static_cast&lt;ClassA*&gt;(base);
		if (classA )
		{
</code></pre>
<p>Ich habe hier nur einen static_cast verwendet, da in dem Programmteil nur Objekte von ClassA sowie deren abgeleiteten Klassen verwendet werden und da man dynamic_casts ja nach Möglichkeit vermeiden soll und diese zudem sehr langsam sein sollen. Ist dieses Vorgehen so sinnvoll oder sollte ich doch lieber einen dynamic_cast nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2234764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2234764</guid><dc:creator><![CDATA[TypeCaster]]></dc:creator><pubDate>Sun, 22 Jul 2012 17:37:10 GMT</pubDate></item><item><title><![CDATA[Reply to static_Cast vs. dynamic_cast on Sun, 22 Jul 2012 17:49:56 GMT]]></title><description><![CDATA[<blockquote>
<p>... da man dynamic_casts ja nach Möglichkeit vermeiden soll ...</p>
</blockquote>
<p>Ja, aber nicht weil sie so langsam sind, sondern weil es meist nach einem schlechten Design stinkt.</p>
<p>Wenn du dir <em>ganz sicher</em> bist, dass <code>base</code> auf ein Objekt zeigt, was von <code>ClassA</code> ableitet, dann ist <code>static_cast&lt;ClassA*&gt;(base)</code> ok. Wenn du dir nicht sicher bist, dann sollte das geprüft werden. <code>dynamic_cast</code> bietet dir eine solche Prüfung zur Laufzeit an. Dafür muss aber die Basis-Klasse polymorph sein. Sonst klappt es nicht und der Compiler beschwert sich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2234767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2234767</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 22 Jul 2012 17:49:56 GMT</pubDate></item></channel></rss>