<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem static-cast</title>
<link>https://forum.pasja-informatyki.pl/tag/static-cast</link>
<description>Powered by Question2Answer</description>
<item>
<title>Rzutowanie klas - dynamic_cast a static_cast</title>
<link>https://forum.pasja-informatyki.pl/8634/rzutowanie-klas-dynamic_cast-a-static_cast</link>
<description>

&lt;p&gt;Witam.
&lt;br&gt;

&lt;br&gt;
Może mi ktoś wyjaśnić czym różni się rzutowanie dynamic_cast od static_cast?&lt;/p&gt;



&lt;p&gt;Mam tutaj np. jedna funkcję, która używa dynamic :&lt;/p&gt;



&lt;p&gt;(Student i Pracownik dziedziczą z klasy Osoba)&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
void wypiszDaneOsoby(Osoba * wskOsoba) {
        
        Student * tempStudent = dynamic_cast&amp;lt;Student*&amp;gt; (wskOsoba);
        if (tempStudent != NULL) {
                cout &amp;lt;&amp;lt; &quot;Student: &quot;;
        } else {
                Pracownik * tempPracownik = dynamic_cast&amp;lt;Pracownik*&amp;gt; (wskOsoba);        
                if (tempPracownik != NULL) {
                        cout &amp;lt;&amp;lt; &quot;Pracownik: &quot;;
                } else {
                        cout &amp;lt;&amp;lt; &quot;Blad podczas dzialania programu&quot;;
                }
        }


   cout &amp;lt;&amp;lt; wskOsoba-&amp;gt;podajImie()
            &amp;lt;&amp;lt; &quot; &quot;
            &amp;lt;&amp;lt; wskOsoba-&amp;gt;podajNazwisko()
            &amp;lt;&amp;lt; &quot; wydatek osobowy: &quot;
            &amp;lt;&amp;lt; wskOsoba-&amp;gt;wydatekOsobowy()
            &amp;lt;&amp;lt; &quot;\n&quot;;
}&lt;/pre&gt;



&lt;p&gt;a tu static:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
void ustalStypendiumStudenta(int nr, int stypendium) {
        Student * tempStudent = static_cast&amp;lt;Student*&amp;gt; (tablicaOsob[nr]);
        tempStudent-&amp;gt;ustalStypendium(stypendium);
}&lt;/pre&gt;



&lt;p&gt;Rozumiem, że w pierwszej funkcji mogę dowiedzieć się czy dany wskaźnik wskazuje na obiekt klasy Student czy Pracownik. A do czegu użyty jest static_cast w drugiej funkcji?&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/8634/rzutowanie-klas-dynamic_cast-a-static_cast</guid>
<pubDate>Mon, 13 Apr 2015 18:58:39 +0000</pubDate>
</item>
</channel>
</rss>