<?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[Frage zu Virtual!!]]></title><description><![CDATA[<p>hey leute kann mir mal jemand erklären was virtualle funktionen sind??<br />
wer dick wenn ein bsp dabei wäre!!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/127560/frage-zu-virtual</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 04:30:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/127560.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Nov 2005 11:19:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Virtual!! on Fri, 25 Nov 2005 11:19:49 GMT]]></title><description><![CDATA[<p>hey leute kann mir mal jemand erklären was virtualle funktionen sind??<br />
wer dick wenn ein bsp dabei wäre!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926867</guid><dc:creator><![CDATA[sdsd]]></dc:creator><pubDate>Fri, 25 Nov 2005 11:19:49 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Virtual!! on Fri, 25 Nov 2005 11:21:33 GMT]]></title><description><![CDATA[<p><a href="http://tutorial.schornboeck.net/virtual.htm" rel="nofollow">http://tutorial.schornboeck.net/virtual.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/926869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926869</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Fri, 25 Nov 2005 11:21:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Virtual!! on Fri, 25 Nov 2005 11:22:37 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p><a href="http://tutorial.schornboeck.net/inhalt.htm" rel="nofollow">Hier</a> gibts ein eigenen Abschnitt darüber.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926873</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 25 Nov 2005 11:22:37 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Virtual!! on Fri, 25 Nov 2005 11:28:02 GMT]]></title><description><![CDATA[<p>Bei virtuellen Funktionen wird erst zur Laufzeit entschieden, welche Version angewendet wird:</p>
<pre><code class="language-cpp">class base
{
public:
  void nfunc() {cout&lt;&lt;&quot;base - nonvirtual&quot;&lt;&lt;endl;}
  virtual void vfunc() {cout&lt;&lt;&quot;base - virtual&quot;&lt;&lt;endl;}
};

class derived : public base
{
public:
  void nfunc() {cout&lt;&lt;&quot;derived - nonvirtual&quot;&lt;&lt;endl;}
  virtual void vfunc() {cout&lt;&lt;&quot;derived - virtual&quot;&lt;&lt;endl;}
};

void test(base&amp;obj)
{
  obj.nfunc();
  obj.vfunc();
}

int main()
{
  base bob;
  test(bob);
/*Ausgabe:
base - nonvirtual
base - virtual
*/
  derived dob;
  test(dob);
/*Ausgabe:
base - nonvirtual
derived - virtual
*/
}
</code></pre>
<p>(bei der nicht-virtuellen Funktion wird zur Compile-Zeit festgestellt, daß sie auf ein base-Objekt angewendet werden soll - also ruft das Programm die base-Version auf, bei der virtuellen Funktion stellt das Programm zur Laufzeit fest, daß es hier ein derived-Objekt hat und ruft dessen Version auf)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926876</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Fri, 25 Nov 2005 11:28:02 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Virtual!! on Fri, 25 Nov 2005 11:33:02 GMT]]></title><description><![CDATA[<p>mal das abgedroschene Beispiel mit den Säugetieren:</p>
<pre><code class="language-cpp">class mammal
{
public:
    virtual void speak()
    {cout&lt;&lt;&quot;Säuger sprechen ned&quot;&lt;&lt;endl;}
}

class cat: public mammal
{
public:
    viod speak()
    {cout&lt;&lt;&quot;miau&quot;&lt;&lt;endl;}
}

int main()
{

// Katze erzeugen und sprechen lassen
// -&gt; kein Problem
cat pussy;
pussy.speak();

// das ganze mit Zeigern:
// auch kein Problem
cat * pussyPtr = new cat;
pussyPtr-&gt;speak();

// und mit Säugetieren genauso:
mammal * mamPtr = new mammal;
mamPtr-&gt;speak();

// aber: eine Katze ist ein Säugetier,
// daher geht auch sowas:
// (einem Zeiger auf mammal wird ein Zeiger auf eine Katze zugewiesen!!!)
mammal * mammalCat = new cat;

// Preisfrage: was passiert jetzt?
mammalCat-&gt;speak();

// Auflösung erster Teil:
// der Compiler sieht, dass mammalCat vom Typ &quot;mammal&quot; ist.
// Daher ruft er natürlich die speak()-Methode von mammal auf.

// zweiter Teil:
// dadurch, dass speak() in mammal &quot;virtuel&quot; ist, legt der Compiler
// eine Tabelle an, in der drinnen steht, dass nicht das speak() von 
// mammal aufgerufen werden soll, sondern das von cat, sofern vorhanden.
// =&gt; 'virtual' erzeugt das Verhalten, das man eigentlich erwartet, da 
// die Methode der abgeleiteten Klasse aufgerufen wird.
// Allerdings ist das ganze nicht kostenlos, sondern dauert einen Tick länger,
// da bei jedem Aufruf einer virtuellen Funktion erst die Tabelle durchsucht 
// werden muss, ob eine entsprechende Funktion in der abgeleiteten Klasse
// vorhanden ist.

return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/926881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926881</guid><dc:creator><![CDATA[anonymus]]></dc:creator><pubDate>Fri, 25 Nov 2005 11:33:02 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Virtual!! on Fri, 25 Nov 2005 11:52:28 GMT]]></title><description><![CDATA[<p>Danke leute habs jetzt gepeilt!!!</p>
<p>aber ich frag mich warum postet akari den geleichen link wie GPC???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926887</guid><dc:creator><![CDATA[sdsd]]></dc:creator><pubDate>Fri, 25 Nov 2005 11:52:28 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Virtual!! on Fri, 25 Nov 2005 12:00:15 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>weil ich die selbe Idee hatte wie GPC, nur zu langsam war.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926891</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 25 Nov 2005 12:00:15 GMT</pubDate></item></channel></rss>