<?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 einer Funktion in einer abgeleiteten Klasse]]></title><description><![CDATA[<p>Hi,</p>
<p>folgender Fall:</p>
<pre><code class="language-cpp">class myClass
{
public:
  virtual void myFunction()
  {
    cout &lt;&lt; &quot;myFunction()&quot; &lt;&lt; endl;
  };
};

class myClass2 : public myClass
{
public:
  virtual void myFunction(bool tag=true)
  {
    cout &lt;&lt; &quot;myFunction() - overloaded version (tag=&quot; &lt;&lt; tag &lt;&lt; &quot;)&quot; &lt;&lt; endl;
  };
};

int main()
{
  // Typ 1
  myClass* a;
  a = new myClass2();
  a-&gt;myFunction();

  // Typ 2
  myClass2* b;
  b = new myClass2();
  b-&gt;myFunction();
}
</code></pre>
<p>Die Ausgabe ist</p>
<blockquote>
<p>myFunction()<br />
myFunction() - overloaded version (tag=1)</p>
</blockquote>
<p>Gibt es eine Möglichkeit, dass ein Objekt, das wie bei Typ 1 deklariert wurde, die überladene Funktion aus myClass2 ausführt?</p>
<p>Gruß, K.B.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/158641/überladen-einer-funktion-in-einer-abgeleiteten-klasse</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 06:15:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158641.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Sep 2006 09:30:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überladen einer Funktion in einer abgeleiteten Klasse on Thu, 07 Sep 2006 09:30:08 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>folgender Fall:</p>
<pre><code class="language-cpp">class myClass
{
public:
  virtual void myFunction()
  {
    cout &lt;&lt; &quot;myFunction()&quot; &lt;&lt; endl;
  };
};

class myClass2 : public myClass
{
public:
  virtual void myFunction(bool tag=true)
  {
    cout &lt;&lt; &quot;myFunction() - overloaded version (tag=&quot; &lt;&lt; tag &lt;&lt; &quot;)&quot; &lt;&lt; endl;
  };
};

int main()
{
  // Typ 1
  myClass* a;
  a = new myClass2();
  a-&gt;myFunction();

  // Typ 2
  myClass2* b;
  b = new myClass2();
  b-&gt;myFunction();
}
</code></pre>
<p>Die Ausgabe ist</p>
<blockquote>
<p>myFunction()<br />
myFunction() - overloaded version (tag=1)</p>
</blockquote>
<p>Gibt es eine Möglichkeit, dass ein Objekt, das wie bei Typ 1 deklariert wurde, die überladene Funktion aus myClass2 ausführt?</p>
<p>Gruß, K.B.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1132814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132814</guid><dc:creator><![CDATA[Karl Blau]]></dc:creator><pubDate>Thu, 07 Sep 2006 09:30:08 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen einer Funktion in einer abgeleiteten Klasse on Thu, 07 Sep 2006 09:35:24 GMT]]></title><description><![CDATA[<p>Überladung funktioniert nur innerhalb eines Scopes, was du da machst, nennt sich Überdeckung. (und virtuelle Funktionen klappen nur, wenn sie eine identische Parameterliste haben)</p>
<p>Ich bin mir nicht sicher, ob es funktioniert, aber eventuell reicht ein &quot;using myClass::myFunction;&quot; am Anfang der myClass2. Andernfalls mußt du die Originalfunktion in der abgeleiteten Klasse überschreiben:</p>
<pre><code class="language-cpp">class myClass2 : public myClass
{
public:
  virtual void myFunction()
  { myFunction(true); }

  virtual void myFunction(bool tag)
  {
    cout &lt;&lt; &quot;myFunction() - overloaded version (tag=&quot; &lt;&lt; tag &lt;&lt; &quot;)&quot; &lt;&lt; endl;
  };
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1132820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132820</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 07 Sep 2006 09:35:24 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen einer Funktion in einer abgeleiteten Klasse on Thu, 07 Sep 2006 09:37:13 GMT]]></title><description><![CDATA[<p>Das sind zwei unterschiedliche Methoden. Die eine erwartet einen Parameter (mit Defaultwert) die andere keinen. Du überdeckst also nur deine Methode aus der Basisklasse.</p>
<p>Edit: CStoll war schneller, mist! <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="🙂"
    /><br />
Btw sollte er aber garkeine Methode überdecken wenn er öffentlich Vererbt.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1132821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132821</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Thu, 07 Sep 2006 09:37:13 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen einer Funktion in einer abgeleiteten Klasse on Thu, 07 Sep 2006 09:35:54 GMT]]></title><description><![CDATA[<p>Der Compiler macht bei fehlender Parameter einen Aufruf der Methode<br />
mit den Standardparametern also eigentlich:</p>
<pre><code class="language-cpp">b-&gt;myFunction(true);
</code></pre>
<p>und da die Methoden nicht die gleiche Signatur haben, hast du sie nicht überladen.<br />
Deshalb mußt du zusätzlich ne Methode</p>
<pre><code class="language-cpp">virtual void myFunction()
  {
    myFunction(true);
  };
</code></pre>
<p>und ich glaub (bin mir nicht sicher) du mußt dann wegen Überschneidungen<br />
den Default-Parameter rausnehmen</p>
<pre><code class="language-cpp">virtual void myFunction(bool tag){
</code></pre>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1132822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132822</guid><dc:creator><![CDATA[CSpille (off)]]></dc:creator><pubDate>Thu, 07 Sep 2006 09:35:54 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen einer Funktion in einer abgeleiteten Klasse on Thu, 07 Sep 2006 09:37:07 GMT]]></title><description><![CDATA[<p>Shit...</p>
<p>Viel zu langsam <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1132824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132824</guid><dc:creator><![CDATA[CSpille (off)]]></dc:creator><pubDate>Thu, 07 Sep 2006 09:37:07 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen einer Funktion in einer abgeleiteten Klasse on Thu, 07 Sep 2006 10:48:04 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Überladung ... Überdeckung...überschreiben...</p>
</blockquote>
<p>Leicht OT: Gibt's da eigentlich eine einheitliche &quot;Benamsung&quot; im Deutschen ?<br />
Im Englischen fine ich overloading, overriding, hiding recht einheitlich verwendet ... im Deutschen dagegen kommt mir das recht konfus vor.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1132876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132876</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 07 Sep 2006 10:48:04 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen einer Funktion in einer abgeleiteten Klasse on Thu, 07 Sep 2006 11:03:31 GMT]]></title><description><![CDATA[<p>Überschreiben, Überladen und Verdecken? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1132894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132894</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Thu, 07 Sep 2006 11:03:31 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen einer Funktion in einer abgeleiteten Klasse on Thu, 07 Sep 2006 11:14:13 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Überschreiben, Überladen und Verdecken? <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>
</blockquote>
<p>sagst <em>Du</em> .... aber ich habe auch schon &quot;Überlagern&quot;, .... gelesen. (&quot;overwriting&quot; aber auch, was es kompliziert macht, weil &quot;overriding&quot;-&gt;&quot;überschreiben&quot;-&gt;&quot;overwriting&quot; oftmal anders gemeint ist)....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1132907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132907</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 07 Sep 2006 11:14:13 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen einer Funktion in einer abgeleiteten Klasse on Thu, 07 Sep 2006 11:24:09 GMT]]></title><description><![CDATA[<p>Da siehst mal, Überlagern hab ich, soweit ich mich entsinnen kann, noch nie gesehen! <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>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1132916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132916</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Thu, 07 Sep 2006 11:24:09 GMT</pubDate></item><item><title><![CDATA[Reply to Überladen einer Funktion in einer abgeleiteten Klasse on Thu, 07 Sep 2006 17:46:08 GMT]]></title><description><![CDATA[<p>Danke für eure Kommentare. Wieder ein Schrittchen weiter auf der C++ Leiter.<br />
K.B.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133225</guid><dc:creator><![CDATA[Karl Blau]]></dc:creator><pubDate>Thu, 07 Sep 2006 17:46:08 GMT</pubDate></item></channel></rss>