<?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[Vererbungsfehler ?]]></title><description><![CDATA[<p>Hi</p>
<p>Ich hab hier ein Problem dass ich einfach nicht verstehe.</p>
<p>Ich habe ein Basisklasse definiert die ein virtuelle Methode Action definiert.<br />
Nun leite ich von dieser Klasse ab und überschreibe auch die virtuelle Methode.</p>
<p>Eine Klasse die auf der Basisklasse arbeitet, ruft die Methode Action auf.<br />
Tatsächlich arbeitet dies Klasse aber Program mit der Abgeleiteten Klasse.</p>
<p>Jetz das Problem. Obwohl die abgeleitete Klasse die vituelle Methode überläd wird die Methode der Basisklasse aufgerufen. Das is aber nich Sinn der Sache.</p>
<p>Vielleicht hilft ein Wenig Code, um euch das zu verdeutlichen:</p>
<pre><code class="language-cpp">class basisklasse
{
  public:
    basisklasse(param 1,param 2);
    virtual bool Action(void){return true;}
};

class abgeleitet : public basisklasse
{
  public:
     abgeleitet(void):basisklasse(wert,wert){}
     bool Action(void);
};

//container für basisclasse
//tatsächlich wird sie aber später die abgeleitete Klasse enthalten
class andereklasse : public vector&lt;basisklasse&gt;
{
    public:
      andereklasse(){}
};

//jetz kommt der Teil der die Falsche methode aufruft

void andereklasse::test(void)
{
  vector&lt;basisklasse&gt;::iterator it;
  for(it=begin();it!=end();it++)
   {
       //irgendwas prüfen
       it-&gt;Action();
   }
}
</code></pre>
<p>Warum is das so ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/36795/vererbungsfehler</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 13:10:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/36795.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Jun 2003 11:19:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbungsfehler ? on Tue, 24 Jun 2003 11:19:00 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Ich hab hier ein Problem dass ich einfach nicht verstehe.</p>
<p>Ich habe ein Basisklasse definiert die ein virtuelle Methode Action definiert.<br />
Nun leite ich von dieser Klasse ab und überschreibe auch die virtuelle Methode.</p>
<p>Eine Klasse die auf der Basisklasse arbeitet, ruft die Methode Action auf.<br />
Tatsächlich arbeitet dies Klasse aber Program mit der Abgeleiteten Klasse.</p>
<p>Jetz das Problem. Obwohl die abgeleitete Klasse die vituelle Methode überläd wird die Methode der Basisklasse aufgerufen. Das is aber nich Sinn der Sache.</p>
<p>Vielleicht hilft ein Wenig Code, um euch das zu verdeutlichen:</p>
<pre><code class="language-cpp">class basisklasse
{
  public:
    basisklasse(param 1,param 2);
    virtual bool Action(void){return true;}
};

class abgeleitet : public basisklasse
{
  public:
     abgeleitet(void):basisklasse(wert,wert){}
     bool Action(void);
};

//container für basisclasse
//tatsächlich wird sie aber später die abgeleitete Klasse enthalten
class andereklasse : public vector&lt;basisklasse&gt;
{
    public:
      andereklasse(){}
};

//jetz kommt der Teil der die Falsche methode aufruft

void andereklasse::test(void)
{
  vector&lt;basisklasse&gt;::iterator it;
  for(it=begin();it!=end();it++)
   {
       //irgendwas prüfen
       it-&gt;Action();
   }
}
</code></pre>
<p>Warum is das so ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268676</guid><dc:creator><![CDATA[prolog]]></dc:creator><pubDate>Tue, 24 Jun 2003 11:19:00 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsfehler ? on Tue, 24 Jun 2003 11:23:00 GMT]]></title><description><![CDATA[<p>Polymorphie funktioniert nicht mit Basisklasseninstanzen, nur mit Referenzen und Pointern (&quot;slicing&quot;). Da man Referenzen nicht in Vektoren packen kann, müßtest du Pointer nehmen. Oder natürlich Smart Pointer bzw. Handles.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268677</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 24 Jun 2003 11:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsfehler ? on Tue, 24 Jun 2003 11:26:00 GMT]]></title><description><![CDATA[<p>HI</p>
<p>Danke dir. Das war prompt. <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>[ Dieser Beitrag wurde am 24.06.2003 um 13:27 Uhr von <strong>prolog</strong> editiert. ]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/268678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/268678</guid><dc:creator><![CDATA[prolog]]></dc:creator><pubDate>Tue, 24 Jun 2003 11:26:00 GMT</pubDate></item></channel></rss>