<?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[Überladen von Funktion bei Vererbung]]></title><description><![CDATA[<p>Hey,</p>
<p>ich habe folgendes Problem: Eine Klasse A hat zwei Fuktionen. Eine Funktion &quot;fkt1&quot; und eine Fuktion &quot;Update&quot;. ftk1 benutzt dabei Update.<br />
Jetzt wird Klasse A vererbt in Klasse B. hier wird &quot;Update&quot; überladen. Ich möchte jtzt beim Aufruf von fkt1 auch die Update aus klasse B verwenden, das Programm springt aber in Update aus Klasse A:</p>
<pre><code class="language-cpp">class A{

public:

void update(){
std::cout &lt;&lt; &quot;update aus klasse A&quot; &lt;&lt; std::endl;
};

void fkt1(){

update();

};

};

class B : public class A{

public:
void update(){
std::cout &lt;&lt; &quot;update aus klasse B&quot; &lt;&lt; std::endl;
};

};
</code></pre>
<p>Jetzt soll</p>
<pre><code class="language-cpp">A myA;
B myB;

A.fkt1();
B.fkt1();
</code></pre>
<p>folgende Ausgabe haben:</p>
<pre><code class="language-cpp">update aus klasse A
update aus klasse B
</code></pre>
<p>es kommt aber:</p>
<pre><code class="language-cpp">update aus klasse A
update aus klasse A
</code></pre>
<p>Ideen wären fett!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/232710/überladen-von-funktion-bei-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 07:10:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/232710.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Jan 2009 09:19:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überladen von Funktion bei Vererbung on Mon, 26 Jan 2009 09:19:04 GMT]]></title><description><![CDATA[<p>Hey,</p>
<p>ich habe folgendes Problem: Eine Klasse A hat zwei Fuktionen. Eine Funktion &quot;fkt1&quot; und eine Fuktion &quot;Update&quot;. ftk1 benutzt dabei Update.<br />
Jetzt wird Klasse A vererbt in Klasse B. hier wird &quot;Update&quot; überladen. Ich möchte jtzt beim Aufruf von fkt1 auch die Update aus klasse B verwenden, das Programm springt aber in Update aus Klasse A:</p>
<pre><code class="language-cpp">class A{

public:

void update(){
std::cout &lt;&lt; &quot;update aus klasse A&quot; &lt;&lt; std::endl;
};

void fkt1(){

update();

};

};

class B : public class A{

public:
void update(){
std::cout &lt;&lt; &quot;update aus klasse B&quot; &lt;&lt; std::endl;
};

};
</code></pre>
<p>Jetzt soll</p>
<pre><code class="language-cpp">A myA;
B myB;

A.fkt1();
B.fkt1();
</code></pre>
<p>folgende Ausgabe haben:</p>
<pre><code class="language-cpp">update aus klasse A
update aus klasse B
</code></pre>
<p>es kommt aber:</p>
<pre><code class="language-cpp">update aus klasse A
update aus klasse A
</code></pre>
<p>Ideen wären fett!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1652471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1652471</guid><dc:creator><![CDATA[ANGs_Pino]]></dc:creator><pubDate>Mon, 26 Jan 2009 09:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen von Funktion bei Vererbung on Mon, 26 Jan 2009 09:20:39 GMT]]></title><description><![CDATA[<p>wie wäre es wenn du auch deine &quot;fkt1()&quot; in B überlädst? Eventuell solltest du dir mal Polymorphismus ansehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1652473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1652473</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Mon, 26 Jan 2009 09:20:39 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen von Funktion bei Vererbung on Mon, 26 Jan 2009 09:30:19 GMT]]></title><description><![CDATA[<p>fkt1() ist zum einen recht lang, zum anderen verwenden auch noch andere Funktionen in clss A die Update-Funktion, ein Überladen von Update() wäre alse sehr praktisch.</p>
<p>Würde es denn per &quot;virtual&quot; funktionieren?<br />
Als eine virual-fkt, die in A definiert wird und in class B dann neu definiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1652480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1652480</guid><dc:creator><![CDATA[ANGs_Pino]]></dc:creator><pubDate>Mon, 26 Jan 2009 09:30:19 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen von Funktion bei Vererbung on Mon, 26 Jan 2009 09:36:24 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>wie wäre es wenn du auch deine &quot;fkt1()&quot; in B überlädst? Eventuell solltest du dir mal Polymorphismus ansehen.</p>
</blockquote>
<p>Um ein paar Stichworte zu liefern, ergänze ich das ganze mal:</p>
<p>Das Schlüsselwort <em>virtual</em> dient dazu, das bei dem Aufruf die konkrete Implementierung des Objektes verwendet wird (<a href="http://de.wikipedia.org/wiki/Polymorphie_%28Programmierung%29" rel="nofollow">Polymorphie</a>).</p>
<p>Sobald du mit Basisklassen arbeitest, solltest du dir auch angewöhnen, den Destruktor der Basisklasse <em>virtual</em> zu deklarieren (Oder alternativ: private, dies ist aber schon sehr speziell).</p>
<pre><code class="language-cpp">class A{
  public:
    // In Basisklassen bitte den Destruktor virtual deklarieren...
    virtual ~A() {}

    virtual void update() {
      std::cout &lt;&lt; &quot;update aus klasse A&quot; &lt;&lt; std::endl;
    }

    void fkt1() {
      update();
    };
};
</code></pre>
<p>Die Angabe &quot;virtual&quot; vererbt sich, das heißt, das du in der Abgeleiteten Klasse B das virtual nicht zwingend dazu schreiben musst. Es reicht wenn du deine Klasse A wie oben anpasst.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1652492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1652492</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 26 Jan 2009 09:36:24 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen von Funktion bei Vererbung on Mon, 26 Jan 2009 09:40:51 GMT]]></title><description><![CDATA[<p>Hmm sorry für meine etwas aussageunkräftige Aussage <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="😃"
    /> Werd das demnächst immer etwas ausführe.Danke asc</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1652497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1652497</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Mon, 26 Jan 2009 09:40:51 GMT</pubDate></item></channel></rss>