<?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[Funktionsaufruf&#x2F;Polymorphie]]></title><description><![CDATA[<p>Hallo Forum!</p>
<p>Ich habe morgen eine C++ Klausur und versuche mich gerade an alten Aufgaben.<br />
Kann mir wer erklären warum Funktionsaufruf //(f) in der main die Funktion //(3) aufruft??</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
using namespace std;

class A{
	  public:
	  		 virtual void f();// 1
	  	  };

class B:public A{
	  public:
	  		 virtual void f();//2
	  };	  	  

class C{
	  public:
	  		 void f();//3
	  };	  

class D: public B, public C{
	  public:
	  		 void f();//4
	  };

class E: public C{
	  public:
	  		 void f();//5
	  };	  	  

int main()
{
A a; 
B b; 
C c;
D d;
E e;

A *ap;
B *bp;
C *cp;

a.f();   //(a)  --&gt; ruft 1 auf
ap=&amp;b;
ap-&gt;f(); //(b) --&gt; ruft 2 auf
bp=&amp;b;
bp-&gt;f(); //(c) --&gt; 	ruft 2 auf
bp=&amp;d;
bp-&gt;f(); //(d) --&gt; 	ruft 4 auf
cp=&amp;c;
cp-&gt;f(); //(e) --&gt; ruft 3 auf
cp=&amp;d;
cp-&gt;f(); //(f) --&gt; ruft 3 auf
cp=&amp;e;
cp-&gt;f(); //(g) --&gt; ruft 3 auf
d.f();   //(h) --&gt;	ruft 4 auf

return 0; 	
}
</code></pre>
<p>Lg Caro</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/260670/funktionsaufruf-polymorphie</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 23:44:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/260670.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Feb 2010 12:03:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionsaufruf&#x2F;Polymorphie on Mon, 08 Feb 2010 12:03:39 GMT]]></title><description><![CDATA[<p>Hallo Forum!</p>
<p>Ich habe morgen eine C++ Klausur und versuche mich gerade an alten Aufgaben.<br />
Kann mir wer erklären warum Funktionsaufruf //(f) in der main die Funktion //(3) aufruft??</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
using namespace std;

class A{
	  public:
	  		 virtual void f();// 1
	  	  };

class B:public A{
	  public:
	  		 virtual void f();//2
	  };	  	  

class C{
	  public:
	  		 void f();//3
	  };	  

class D: public B, public C{
	  public:
	  		 void f();//4
	  };

class E: public C{
	  public:
	  		 void f();//5
	  };	  	  

int main()
{
A a; 
B b; 
C c;
D d;
E e;

A *ap;
B *bp;
C *cp;

a.f();   //(a)  --&gt; ruft 1 auf
ap=&amp;b;
ap-&gt;f(); //(b) --&gt; ruft 2 auf
bp=&amp;b;
bp-&gt;f(); //(c) --&gt; 	ruft 2 auf
bp=&amp;d;
bp-&gt;f(); //(d) --&gt; 	ruft 4 auf
cp=&amp;c;
cp-&gt;f(); //(e) --&gt; ruft 3 auf
cp=&amp;d;
cp-&gt;f(); //(f) --&gt; ruft 3 auf
cp=&amp;e;
cp-&gt;f(); //(g) --&gt; ruft 3 auf
d.f();   //(h) --&gt;	ruft 4 auf

return 0; 	
}
</code></pre>
<p>Lg Caro</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1852355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1852355</guid><dc:creator><![CDATA[fischldi]]></dc:creator><pubDate>Mon, 08 Feb 2010 12:03:39 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsaufruf&#x2F;Polymorphie on Mon, 08 Feb 2010 12:12:14 GMT]]></title><description><![CDATA[<p>Weil class C nicht von A oder B erbt und f() nicht virtuell ist. Damit wird nicht der Laufzeittyp ermittelt und in einer vtable (o.Ä.) nach der passenden Methode gesucht, sondern stur die Methode aufgerufen, die zum dereferenzierten Objekt passt - und das ist bei einem Zeiger &quot;C* cp&quot; nunmal C::f().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1852365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1852365</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Mon, 08 Feb 2010 12:12:14 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsaufruf&#x2F;Polymorphie on Mon, 08 Feb 2010 15:01:07 GMT]]></title><description><![CDATA[<p>vielen Dank!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1852487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1852487</guid><dc:creator><![CDATA[fischldi]]></dc:creator><pubDate>Mon, 08 Feb 2010 15:01:07 GMT</pubDate></item></channel></rss>