<?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[Callverhalten bei Ableitungen]]></title><description><![CDATA[<p>Hallo.<br />
Ist dies im Standard so definiert, dass folgendes funktioniert?</p>
<pre><code class="language-cpp">class Base
{
public:
	virtual void func1()
	{
		cout &lt;&lt; &quot;Base::func1&quot; &lt;&lt; endl;
	}
};

class Derived : public Base
{
public:
	virtual void func1()
	{
		cout &lt;&lt; &quot;Derived::func1&quot; &lt;&lt; endl;
	}
};

// ...

Derived *pDerived = new Derived;
pDerived-&gt;func1(); // &quot;Derived::func1&quot;
((Base*)pDerived)-&gt;func1(); // &quot;Base::func1&quot;?
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273062/callverhalten-bei-ableitungen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 11:36:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273062.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Aug 2010 14:45:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Mon, 30 Aug 2010 14:49:57 GMT]]></title><description><![CDATA[<p>Hallo.<br />
Ist dies im Standard so definiert, dass folgendes funktioniert?</p>
<pre><code class="language-cpp">class Base
{
public:
	virtual void func1()
	{
		cout &lt;&lt; &quot;Base::func1&quot; &lt;&lt; endl;
	}
};

class Derived : public Base
{
public:
	virtual void func1()
	{
		cout &lt;&lt; &quot;Derived::func1&quot; &lt;&lt; endl;
	}
};

// ...

Derived *pDerived = new Derived;
pDerived-&gt;func1(); // &quot;Derived::func1&quot;
((Base*)pDerived)-&gt;func1(); // &quot;Base::func1&quot;?
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946165</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Mon, 30 Aug 2010 14:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Mon, 30 Aug 2010 14:47:52 GMT]]></title><description><![CDATA[<p>Es ist zumindest definiert, dass Klassendefinitionen mit Semikola abgeschlossen werden sollen. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946168</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Mon, 30 Aug 2010 14:47:52 GMT</pubDate></item><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Mon, 30 Aug 2010 14:48:12 GMT]]></title><description><![CDATA[<p>Kann ich mir nicht vorstellen: Der Clou an Polymorphie ist ja gerade dass ein Basisklassenzeiger die richtige Methode (in dem Fall also die von Derived) aufruft.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946169</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 30 Aug 2010 14:48:12 GMT</pubDate></item><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Mon, 30 Aug 2010 14:50:28 GMT]]></title><description><![CDATA[<p>@ matze: Unterschreib ich so! <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 />
@ SideWinder: Ok.</p>
<p>Also müsste ich das immer so machen, oder?</p>
<pre><code class="language-cpp">class Base
{
public:
    virtual void func1()
    {
        cout &lt;&lt; &quot;Base::func1&quot; &lt;&lt; endl;
    }
};

class Derived : public Base
{
public:
    virtual void func1()
    {
        Base::func1();
        cout &lt;&lt; &quot;Derived::func1&quot; &lt;&lt; endl;
    }
};

// ...

Derived *pDerived = new Derived;
pDerived-&gt;func1(); // &quot;Base::func1&quot;, danach &quot;Derived::func1&quot;
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946170</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Mon, 30 Aug 2010 14:50:28 GMT</pubDate></item><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Mon, 30 Aug 2010 14:53:02 GMT]]></title><description><![CDATA[<p>So geht es, ja.</p>
<p>Direkt:</p>
<pre><code class="language-cpp">Base* pDerived = ...;
pDervied-&gt;Base::func1()
</code></pre>
<p>läuft nicht?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946171</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 30 Aug 2010 14:53:02 GMT</pubDate></item><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Mon, 30 Aug 2010 14:55:11 GMT]]></title><description><![CDATA[<p>Nein, funktioniert nicht (Visual Studio 2008).</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946173</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Mon, 30 Aug 2010 14:55:11 GMT</pubDate></item><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Mon, 30 Aug 2010 14:58:15 GMT]]></title><description><![CDATA[<p>Ach du erzählst ja pallawatsch, probier's noch einmal <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 SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946177</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 30 Aug 2010 14:58:15 GMT</pubDate></item><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Mon, 30 Aug 2010 15:06:46 GMT]]></title><description><![CDATA[<p>Scheiße.. Hab mich wohl vertan. Geht tatsächlich <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>Gruß und Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946180</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Mon, 30 Aug 2010 15:06:46 GMT</pubDate></item><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Tue, 31 Aug 2010 12:19:35 GMT]]></title><description><![CDATA[<p>Hi.<br />
Dazu noch mal eine Frage: Wenn ich folgende Situation habe, ergibt sich dann eine Endlosaufrufschleife, oder wird (wie gewollt) die höchste Ableitung aufgerufen?</p>
<pre><code class="language-cpp">class Base
{
public:
    virtual void func1()
    {
        cout &lt;&lt; &quot;Base::func1&quot; &lt;&lt; endl;
        this-&gt;Base::inflictor();
    }
    virtual void inflictor()
    {
        // mach irgendwas
        this-&gt;inflictor(); // Base::inflictor() oder Derived::inflictor()?  
    }
};

class Derived : public Base
{
public:
    virtual void func1()
    {
        Base::func1();
        cout &lt;&lt; &quot;Derived::func1&quot; &lt;&lt; endl;
    }
    virtual void inflictor()
    {
    }
};

// ...

Derived *pDerived = new Derived;
pDerived-&gt;Base::func1();
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946535</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Tue, 31 Aug 2010 12:19:35 GMT</pubDate></item><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Tue, 31 Aug 2010 12:43:16 GMT]]></title><description><![CDATA[<p>Es wird Derived::inflictor() aufgerufen, da der statische Typ und auch der dynamische, sprich Laufzeittyp des Zeigers Derived ist.</p>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946548</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Tue, 31 Aug 2010 12:43:16 GMT</pubDate></item><item><title><![CDATA[Reply to Callverhalten bei Ableitungen on Tue, 31 Aug 2010 14:46:16 GMT]]></title><description><![CDATA[<p>Allerdings halte ich sowas für schlechten Stil. Benutz lieber das NVI-Idiom (Non Virtual Interface) oder verwende virtuelle Funktionen so, wie sie gedacht sind. Sonst wird sich der Benutzer sicher ins Knie schiessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1946609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1946609</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 31 Aug 2010 14:46:16 GMT</pubDate></item></channel></rss>