<?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[Polymorphie - Virtual]]></title><description><![CDATA[<p>Hiho <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>
<p>um direkt zu Sache zukommen <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 />
Ich habe folgenden Code:</p>
<pre><code>void main() {
  BMW* meinBMW = new dreierBMW;

  Auto* meinAuto = meinBMW;

  meinAuto-&gt;Fahren();
}

class Auto {

  public:  
  Auto() { }
  virtual void Fahren() { }
}

class BMW : Auto {

  public:
  BMW() {}
  void Fahren() {

    Beschleunigen();
  }
  virtual void Beschleunigen() { }
}

class dreierBMW() : BMW {

  public:
  dreierBMW() {}
  void Beschleunigen();
}
</code></pre>
<p>nun ich möchte die Funktion &quot;Beschleunigen&quot; der Klasse &quot;dreierBMW&quot; mit der Funktion &quot;Fahren&quot; ausführen <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 />
aber er führt die Funktion &quot;Beschleunigen&quot; der Klasse BMW aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
was mach ich falsch und was könnte ich tun damit es funktioniert ? <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>
<p>mfg Trekarraz</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/316331/polymorphie-virtual</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 00:02:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316331.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Apr 2013 19:45:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Polymorphie - Virtual on Mon, 29 Apr 2013 19:45:43 GMT]]></title><description><![CDATA[<p>Hiho <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>
<p>um direkt zu Sache zukommen <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 />
Ich habe folgenden Code:</p>
<pre><code>void main() {
  BMW* meinBMW = new dreierBMW;

  Auto* meinAuto = meinBMW;

  meinAuto-&gt;Fahren();
}

class Auto {

  public:  
  Auto() { }
  virtual void Fahren() { }
}

class BMW : Auto {

  public:
  BMW() {}
  void Fahren() {

    Beschleunigen();
  }
  virtual void Beschleunigen() { }
}

class dreierBMW() : BMW {

  public:
  dreierBMW() {}
  void Beschleunigen();
}
</code></pre>
<p>nun ich möchte die Funktion &quot;Beschleunigen&quot; der Klasse &quot;dreierBMW&quot; mit der Funktion &quot;Fahren&quot; ausführen <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 />
aber er führt die Funktion &quot;Beschleunigen&quot; der Klasse BMW aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
was mach ich falsch und was könnte ich tun damit es funktioniert ? <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>
<p>mfg Trekarraz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2319733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2319733</guid><dc:creator><![CDATA[Trekarraz]]></dc:creator><pubDate>Mon, 29 Apr 2013 19:45:43 GMT</pubDate></item><item><title><![CDATA[Reply to Polymorphie - Virtual on Mon, 29 Apr 2013 20:09:14 GMT]]></title><description><![CDATA[<p>Schritt 1: Aus deinem Quellcode die vielen offensichtlichen Fehler rausmachen. D.h. fehlende Semikolons setzen, falsch gesetzte Klammern entfernen, public-Vererbung statt private, Reihenfolge korrigieren, usw.<br />
Schritt 2: Kontrollausgaben, an denen man überhaupt sieht, was passiert</p>
<p>Ergebnis:</p>
<pre><code>#include &lt;iostream&gt;
using std::cout;

class Auto {
  public:  
  Auto() { }
  virtual void Fahren() {cout &lt;&lt;&quot;Autofahren\n&quot;; }
};

class BMW : public Auto {
public:
  void Fahren() {
    cout &lt;&lt; &quot;BMW fahren\n&quot;;
    Beschleunigen();
  }
  virtual void Beschleunigen() { cout &lt;&lt; &quot;BMW beschleunigen\n&quot;;}
};

class dreierBMW: public BMW {
  public:
  dreierBMW() {}
  void Beschleunigen() {cout &lt;&lt; &quot;3er BMW beschleunigen\n&quot;;};
};

int main() {
  BMW* meinBMW = new dreierBMW;

  Auto* meinAuto = meinBMW;

  meinAuto-&gt;Fahren();
}
</code></pre>
<p>Doch oh Schreck! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Der Code funktioniert:<br />
<a href="http://ideone.com/e79CEG" rel="nofollow">http://ideone.com/e79CEG</a></p>
<p>Da hast du wohl<br />
<a href="http://www.c-plusplus.net/forum/304133" rel="nofollow">http://www.c-plusplus.net/forum/304133</a><br />
nicht beachtet und es ist genau das passiert, weshalb dieser Beitrag als wichtig markiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2319740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2319740</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 29 Apr 2013 20:09:14 GMT</pubDate></item><item><title><![CDATA[Reply to Polymorphie - Virtual on Mon, 29 Apr 2013 20:39:43 GMT]]></title><description><![CDATA[<p>ohh verdammt ... sry ...<br />
hab nen anderen Code gehabt der viel mehr Funktionen etc beeinhaltet und ich dachte lieber machst du ne einfache Version damit nicht alles zugeknallt wird ...<br />
und genau da hab ich alles richtig gecodet aka hab ein virtual im Original vergessen &gt;_&lt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2319748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2319748</guid><dc:creator><![CDATA[Trekarraz]]></dc:creator><pubDate>Mon, 29 Apr 2013 20:39:43 GMT</pubDate></item><item><title><![CDATA[Reply to Polymorphie - Virtual on Thu, 02 May 2013 15:38:08 GMT]]></title><description><![CDATA[<p>Trekarraz schrieb:</p>
<blockquote>
<pre><code>void main() {
  BMW* meinBMW = new dreierBMW; // Schrott, Klasseninstanzen mit new zu erzeugen
  
  Auto* meinAuto = meinBMW; // Schrott, eine Oberklassen-Quasi-Instanz auf eine Unterklassen-Quasi-Instanz verweisen zu lassen
</code></pre>
<p>aber er führt die Funktion &quot;Beschleunigen&quot; der Klasse BMW aus</p>
</blockquote>
<p>Weil die Methode dort definiert ist, deshalb führt &quot;er&quot; sie &quot;dort&quot; aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2320245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2320245</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Thu, 02 May 2013 15:38:08 GMT</pubDate></item></channel></rss>