<?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[Vererbungsstruktur]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>ich habe mal dieses Tutorial durchgegangen und es tauchen bei mir einige Fragen auf: <a href="http://tutorial.schornboeck.net/vererbung.htm" rel="nofollow">http://tutorial.schornboeck.net/vererbung.htm</a></p>
<p>Dabei habe ich eine Klasse Vogel und eine Klasse Singvogel, die vom Vogel erbt.<br />
D.h. ich habe folgende Struktur:</p>
<p>Vogel.h:</p>
<pre><code class="language-cpp">class Vogel
{
	public:
		void fliege();
};
</code></pre>
<p>Vogel.cpp:</p>
<pre><code class="language-cpp">#include &quot;Vogel.h&quot;
#include &lt;iostream&gt;
void Vogel::fliege()
{
	printf(&quot;Der Vogel fliegt!&quot;);
}
</code></pre>
<p>Singvogel.h:</p>
<pre><code class="language-cpp">#include &quot;Vogel.h&quot;
class Singvogel : public Vogel
{
	public:
		void sing();

};
</code></pre>
<p>Singvogel.cpp:</p>
<pre><code class="language-cpp">#include &quot;Singvogel.h&quot;
#include &lt;iostream&gt;
void Singvogel::sing()
{
	printf(&quot;Der Singvogel singt!&quot;);
}
</code></pre>
<p>Hauptprogramm:</p>
<pre><code class="language-cpp">#include &quot;Vogel.h&quot;
#include &quot;Singvogel.h&quot;
int main()
    {
      Vogel vogel;
      vogel.fliege();

      Singvogel singvogel;
      singvogel.fliege();
      singvogel.sing();
    }
</code></pre>
<p>Nun habe ich noch folgende Fehlermeldung, die ich so nicht ganz nachvollziehen kann. Beide in Vogel.h:<br />
Previous definition of class Vogel<br />
Redefinition of class Vogel</p>
<p>Habe ich da etwas an den includes falsch gemacht?<br />
Wäre nett, wenn mir jemand einen Tipp geben könnte.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/236542/vererbungsstruktur</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 20:19:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/236542.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Mar 2009 19:01:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbungsstruktur on Mon, 16 Mar 2009 19:01:35 GMT]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>ich habe mal dieses Tutorial durchgegangen und es tauchen bei mir einige Fragen auf: <a href="http://tutorial.schornboeck.net/vererbung.htm" rel="nofollow">http://tutorial.schornboeck.net/vererbung.htm</a></p>
<p>Dabei habe ich eine Klasse Vogel und eine Klasse Singvogel, die vom Vogel erbt.<br />
D.h. ich habe folgende Struktur:</p>
<p>Vogel.h:</p>
<pre><code class="language-cpp">class Vogel
{
	public:
		void fliege();
};
</code></pre>
<p>Vogel.cpp:</p>
<pre><code class="language-cpp">#include &quot;Vogel.h&quot;
#include &lt;iostream&gt;
void Vogel::fliege()
{
	printf(&quot;Der Vogel fliegt!&quot;);
}
</code></pre>
<p>Singvogel.h:</p>
<pre><code class="language-cpp">#include &quot;Vogel.h&quot;
class Singvogel : public Vogel
{
	public:
		void sing();

};
</code></pre>
<p>Singvogel.cpp:</p>
<pre><code class="language-cpp">#include &quot;Singvogel.h&quot;
#include &lt;iostream&gt;
void Singvogel::sing()
{
	printf(&quot;Der Singvogel singt!&quot;);
}
</code></pre>
<p>Hauptprogramm:</p>
<pre><code class="language-cpp">#include &quot;Vogel.h&quot;
#include &quot;Singvogel.h&quot;
int main()
    {
      Vogel vogel;
      vogel.fliege();

      Singvogel singvogel;
      singvogel.fliege();
      singvogel.sing();
    }
</code></pre>
<p>Nun habe ich noch folgende Fehlermeldung, die ich so nicht ganz nachvollziehen kann. Beide in Vogel.h:<br />
Previous definition of class Vogel<br />
Redefinition of class Vogel</p>
<p>Habe ich da etwas an den includes falsch gemacht?<br />
Wäre nett, wenn mir jemand einen Tipp geben könnte.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681070</guid><dc:creator><![CDATA[Fenixx]]></dc:creator><pubDate>Mon, 16 Mar 2009 19:01:35 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Mon, 16 Mar 2009 19:04:51 GMT]]></title><description><![CDATA[<p>Du hast die Klasse mehrfach definiert, da du sie im Hauptprogramm sowohl über <code>&quot;Vogel.h&quot;</code> als auch über <code>&quot;Singvogel.h&quot;</code> indirekt inkludierst.</p>
<p>Include Guards stellen eine Lösung dar, such mal danach...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681073</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 16 Mar 2009 19:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Mon, 16 Mar 2009 19:17:47 GMT]]></title><description><![CDATA[<p>Sauber. Vielen Dank für den Hinweis. Funktioniert super.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681083</guid><dc:creator><![CDATA[Fenixx]]></dc:creator><pubDate>Mon, 16 Mar 2009 19:17:47 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Mon, 16 Mar 2009 20:19:02 GMT]]></title><description><![CDATA[<p>Aber wieso eigentlich</p>
<pre><code class="language-cpp">printf(&quot;Der Vogel fliegt!&quot;);
</code></pre>
<p>?</p>
<p>wie wärs mit <code>std::cout</code> ?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681125</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 16 Mar 2009 20:19:02 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Mon, 16 Mar 2009 20:26:22 GMT]]></title><description><![CDATA[<p>Haha, ist ein Pinguin auch ein Vogel, obwohl er nicht fliegen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681128</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 16 Mar 2009 20:26:22 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Mon, 16 Mar 2009 20:39:35 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Haha, ist ein Pinguin auch ein Vogel, obwohl er nicht fliegen kann?</p>
</blockquote>
<p>Lt. Definition können Pinguine fliegen. Da sie die gleiche Technik anwenden, wie Vögel beim Fliegen, können sie also auch fliegen - nur eben unter Wasser fliegen...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681137</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 16 Mar 2009 20:39:35 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Mon, 16 Mar 2009 20:46:01 GMT]]></title><description><![CDATA[<p>Jetzt weiß ich auch endlich was Fliegenfischen bedeutet!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681140</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Mar 2009 20:46:01 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Tue, 17 Mar 2009 07:47:43 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Haha, ist ein Pinguin auch ein Vogel, obwohl er nicht fliegen kann?</p>
</blockquote>
<p>Wer sagt denn, dass Pinguine für sein System relevent sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681281</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 17 Mar 2009 07:47:43 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Tue, 17 Mar 2009 09:02:59 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>knivil schrieb:</p>
<blockquote>
<p>Haha, ist ein Pinguin auch ein Vogel, obwohl er nicht fliegen kann?</p>
</blockquote>
<p>Wer sagt denn, dass Pinguine für sein System relevent sind?</p>
</blockquote>
<p>Wer behauptet denn, das sie nicht relevant sind. Btw. ging es darum, die Maengel von Vererbung und den Weg, den er eingeschlagen hat, aufzuzeigen ... Es ist das Ellipse-Kreis-Problem (siehe parashift C++-FAQ-lite).</p>
<p>PS: Nein Pinguine koennen nicht fliegen, auch nicht unter Wasser. Das nennt man schwimmen. Wenn ich meine Arme hin und her bewege und irgendwelche Techniken anwende, dann fliege ich noch lange nicht (was fuer ein Schwachsinn).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681321</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 17 Mar 2009 09:02:59 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Tue, 17 Mar 2009 09:18:12 GMT]]></title><description><![CDATA[<p><a href="http://www.spiegel.de/netzwelt/web/0,1518,551499,00.html" rel="nofollow">http://www.spiegel.de/netzwelt/web/0,1518,551499,00.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681331</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 17 Mar 2009 09:18:12 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Tue, 17 Mar 2009 09:40:41 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Btw. ging es darum, die Maengel von Vererbung und den Weg, den er eingeschlagen hat, aufzuzeigen ... Es ist das Ellipse-Kreis-Problem (siehe parashift C++-FAQ-lite).</p>
</blockquote>
<p>Wobei oft vergessen wird, dass dieses Problem nur Klassen betrifft, die veränder-Methoden bereitstellen. Ein immutable Kreis kann super von einer immutable Ellipse erben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681349</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 17 Mar 2009 09:40:41 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Tue, 17 Mar 2009 10:15:06 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Wer behauptet denn, das sie nicht relevant sind. Btw. ging es darum, die Maengel von Vererbung und den Weg, den er eingeschlagen hat, aufzuzeigen ... Es ist das Ellipse-Kreis-Problem (siehe parashift C++-FAQ-lite).</p>
</blockquote>
<p>Ich sehe hier aber keine Pinguine. Daher sind Pinguine für das System wohl auch nicht relevant. Das ist etwas anderes als bei Deinem parashift C++-FAQ-lite-Beispiel, wo das Problem konkret besteht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681375</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 17 Mar 2009 10:15:06 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Tue, 17 Mar 2009 10:24:11 GMT]]></title><description><![CDATA[<p>Diese ganzen Kreis/Ellipse und Pinguin/Vogel Problematiken entstehen nur dann, wenn man für das Problem das das Programm lösen soll die falschen Abstraktionen anwendet. Wenn sich mein Programm ausschließlich mit fliegenden Vögeln beschäftigt (sei es als physikalischer Simulator für fliegende Objekte oder sonstetwas in der Art) dann ist es legitim, die Klasse &quot;Vogel&quot; mit der Methode &quot;fliegen()&quot; auszustatten. Wenn man dagegen mit der biologischen Klasse der Aves zu tun hat wäre so ein Ansatz eine zu grobe Verallgemeinerung da es unter den Aves eben sowohl flugfähige als auch nicht flugfähige Spezies gibt. Ob solche Vererbungsstrukturen also als richtig oder falsch zu beurteilen sind ist immer kontextabhängig.<br />
Und um entsprechende Einwände vorwegzunehmen: es ist nicht richtig, dann in jedem Fall unbedingt alle Möglichkeiten abzugreifen und in dem physikalischen Simulator die flugfähigen Vögel zu benutzen, die von den Vögeln abgeleitet sind, die wiederum von den Tieren abgeleitet sind, die von den Lebewesen abgeleitet sind... Das wäre Information Overkill und trägt nicht zur Lösung des Problems bei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681383</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 17 Mar 2009 10:24:11 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbungsstruktur on Tue, 17 Mar 2009 10:47:21 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Danke. Genau darauf wollte ich hinaus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681390</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 17 Mar 2009 10:47:21 GMT</pubDate></item></channel></rss>