<?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[Alte virtuelle Funktion aufrufen]]></title><description><![CDATA[<p>Hallo,<br />
ich möchte eine virtuelle Funktion der Basisklasse neu definieren, aber die Basisdefinition trotzdem nutzen.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">class CBase
{
	public:
		virtual void TestVirtual() { cout &lt;&lt; &quot;CBase&quot;; }
};

class CDerived : public CBase
{
	public:
		virtual void TestVirtual() { cout &lt;&lt; &quot;CDerived&quot;; }
		void TestBase() { dynamic_cast&lt;CBase*&gt;(this)-&gt;TestVirtual(); }
};

int main()
{
	CDerived test;

	test.TestVirtual(); // Gibt CDerived aus
	test.TestBase();    // Gibt wieder CDerived aus

    return 0;
}
</code></pre>
<p>Leider wird mir beidesmal CDerived ausgegeben. Ist mein Vorhaben überhaupt möglich?</p>
<p>MfG,<br />
Max</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/224237/alte-virtuelle-funktion-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 18:25:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/224237.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Oct 2008 13:10:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Alte virtuelle Funktion aufrufen on Tue, 07 Oct 2008 13:10:23 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich möchte eine virtuelle Funktion der Basisklasse neu definieren, aber die Basisdefinition trotzdem nutzen.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">class CBase
{
	public:
		virtual void TestVirtual() { cout &lt;&lt; &quot;CBase&quot;; }
};

class CDerived : public CBase
{
	public:
		virtual void TestVirtual() { cout &lt;&lt; &quot;CDerived&quot;; }
		void TestBase() { dynamic_cast&lt;CBase*&gt;(this)-&gt;TestVirtual(); }
};

int main()
{
	CDerived test;

	test.TestVirtual(); // Gibt CDerived aus
	test.TestBase();    // Gibt wieder CDerived aus

    return 0;
}
</code></pre>
<p>Leider wird mir beidesmal CDerived ausgegeben. Ist mein Vorhaben überhaupt möglich?</p>
<p>MfG,<br />
Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594822</guid><dc:creator><![CDATA[ripmav]]></dc:creator><pubDate>Tue, 07 Oct 2008 13:10:23 GMT</pubDate></item><item><title><![CDATA[Reply to Alte virtuelle Funktion aufrufen on Tue, 07 Oct 2008 13:14:06 GMT]]></title><description><![CDATA[<p>Statt Zeile 11: cBase::TestVirtual();</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594826</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 07 Oct 2008 13:14:06 GMT</pubDate></item><item><title><![CDATA[Reply to Alte virtuelle Funktion aufrufen on Tue, 07 Oct 2008 13:45:02 GMT]]></title><description><![CDATA[<p>Perfekt! Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594860</guid><dc:creator><![CDATA[ripmav]]></dc:creator><pubDate>Tue, 07 Oct 2008 13:45:02 GMT</pubDate></item></channel></rss>