<?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[Virtuelle Funktion , nochmal virtuell in Unterklasse !]]></title><description><![CDATA[<p>Hey Leute , unser Prof stellte uns neulich folgende Frage ..</p>
<pre><code class="language-cpp">Aufgabe 4: Gegeben sind die folgenden (unvollständigen!) Klassen Shape, Rectangle und
Circle. Ergänzen Sie jeweils an den angegebenen Stellen, in welcher Farbe die Figur gezeichnet

enum Color {RED, GREEN, BLUE};
class Area {
public:
virtual void draw () {
Color color = RED;
// Zeichnen der Figur...
}
// ...
}
class Rectangle: public Area {
public:
virtual void draw () {
Color color = GREEN;
// Zeichnen der Figur...
}
// ...
}
class Circle: public Area {
public:
void draw () {
Color color = BLUE;
// Zeichnen der Figur...
}
// ...
}
Area *a = new Area;
Area *aRe = new Rectangle;
Area *aCi = new Circle;
a-&gt;draw (); // Farbe, in der gezeichnet wird:__________________
aRe-&gt;draw (); // Farbe, in der gezeichnet wird:__________________
aCi-&gt;draw (); // Farbe, in der gezeichnet wird:__________________
a = aRe;
a-&gt;draw (); // Farbe, in der gezeichnet wird:__________________
a = aCi;
a-&gt;draw (); // Farbe, in der gezeichnet wird:__________________
</code></pre>
<p>Allerdings verstehe ich nicht warun er in der Unterklasse Rectangle die Funktion draw nochmals als virtuell deklariert .<br />
Welche Auswirkungen hat dies auf die Ausgabe der Farben ??</p>
<p>Greets</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/269315/virtuelle-funktion-nochmal-virtuell-in-unterklasse</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 06:57:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/269315.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Jun 2010 08:07:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Virtuelle Funktion , nochmal virtuell in Unterklasse ! on Wed, 23 Jun 2010 08:07:55 GMT]]></title><description><![CDATA[<p>Hey Leute , unser Prof stellte uns neulich folgende Frage ..</p>
<pre><code class="language-cpp">Aufgabe 4: Gegeben sind die folgenden (unvollständigen!) Klassen Shape, Rectangle und
Circle. Ergänzen Sie jeweils an den angegebenen Stellen, in welcher Farbe die Figur gezeichnet

enum Color {RED, GREEN, BLUE};
class Area {
public:
virtual void draw () {
Color color = RED;
// Zeichnen der Figur...
}
// ...
}
class Rectangle: public Area {
public:
virtual void draw () {
Color color = GREEN;
// Zeichnen der Figur...
}
// ...
}
class Circle: public Area {
public:
void draw () {
Color color = BLUE;
// Zeichnen der Figur...
}
// ...
}
Area *a = new Area;
Area *aRe = new Rectangle;
Area *aCi = new Circle;
a-&gt;draw (); // Farbe, in der gezeichnet wird:__________________
aRe-&gt;draw (); // Farbe, in der gezeichnet wird:__________________
aCi-&gt;draw (); // Farbe, in der gezeichnet wird:__________________
a = aRe;
a-&gt;draw (); // Farbe, in der gezeichnet wird:__________________
a = aCi;
a-&gt;draw (); // Farbe, in der gezeichnet wird:__________________
</code></pre>
<p>Allerdings verstehe ich nicht warun er in der Unterklasse Rectangle die Funktion draw nochmals als virtuell deklariert .<br />
Welche Auswirkungen hat dies auf die Ausgabe der Farben ??</p>
<p>Greets</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916105</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Wed, 23 Jun 2010 08:07:55 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Funktion , nochmal virtuell in Unterklasse ! on Wed, 23 Jun 2010 08:12:31 GMT]]></title><description><![CDATA[<p>Bacid90210 schrieb:</p>
<blockquote>
<p>Allerdings verstehe ich nicht warun er in der Unterklasse Rectangle die Funktion draw nochmals als virtuell deklariert .<br />
Welche Auswirkungen hat dies auf die Ausgabe der Farben ??</p>
</blockquote>
<p>Das hat gar keine Auswirkungen. Eine Funktion die in eine Basisklasse einmal als virtuel deklariert wurde, bleibt auch virtuell. Das hinzuschreiben des virtuel Keywords in abgeleiteten Klassen ist optional.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916108</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Wed, 23 Jun 2010 08:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Funktion , nochmal virtuell in Unterklasse ! on Wed, 23 Jun 2010 08:14:47 GMT]]></title><description><![CDATA[<blockquote>
<p>Das hinzuschreiben des virtuel Keywords in abgeleiteten Klassen ist optional.</p>
</blockquote>
<p>Es gehoert aber zum guten Ton.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916111</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 23 Jun 2010 08:14:47 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Funktion , nochmal virtuell in Unterklasse ! on Wed, 23 Jun 2010 08:16:09 GMT]]></title><description><![CDATA[<p>Wenn ich die Funktion als virtuell deklariere.. kann ich die Klasse dann doch wieder nicht instanziieren . Oder sieht der Compiler , oh sie wurde in der Oberklasse schon als virtuell deklariert ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916114</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Wed, 23 Jun 2010 08:16:09 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Funktion , nochmal virtuell in Unterklasse ! on Wed, 23 Jun 2010 08:20:08 GMT]]></title><description><![CDATA[<p>Natürlich kannst du Klassen mit virtuelle Funktionen instanziieren. Du kannst Klassen mit abstrakten Funktionen kannst du nicht instanziieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916116</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Wed, 23 Jun 2010 08:20:08 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Funktion , nochmal virtuell in Unterklasse ! on Wed, 23 Jun 2010 08:23:26 GMT]]></title><description><![CDATA[<p>Ok das wusste ich noch nicht .<br />
Vielen dank für die Info .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916118</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Wed, 23 Jun 2010 08:23:26 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Funktion , nochmal virtuell in Unterklasse ! on Wed, 23 Jun 2010 08:37:29 GMT]]></title><description><![CDATA[<p>Bacid90210 schrieb:</p>
<blockquote>
<p>Ok das wusste ich noch nicht .<br />
Vielen dank für die Info .</p>
</blockquote>
<p>du könntest die klasse nicht instanzieren, wenn du sie wie oben gesagt abstrakt machen würdest. und das ginge so:</p>
<pre><code class="language-cpp">class myclass
{
public:
   virtual void x() = 0;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1916127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916127</guid><dc:creator><![CDATA[virtual diva]]></dc:creator><pubDate>Wed, 23 Jun 2010 08:37:29 GMT</pubDate></item></channel></rss>