<?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[Basisklasse auf abgeleitete Klasse anwenden]]></title><description><![CDATA[<p>Guten Abend,</p>
<p>vielleicht stehe ich gerade etwas auf dem Schlauch aber ich habe folgenden Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

class Mensch
{
public:
	string Vorname;
	string Nachmane;
	int    Alter;
	string Wohnort;
};

class Komiker : public Mensch
{
public:
	string Geschieden;
	double Gehalt;
	int    Arbeitstage;
};

int main()
{
	Mensch *Otto   = new Mensch();
	Otto-&gt;Vorname  = &quot;Otto&quot;;
	Otto-&gt;Nachmane = &quot;Waalkes&quot;;
	Otto-&gt;Alter    = 63;
	Otto-&gt;Wohnort  = &quot;Emden&quot;;

	Komiker *Waalkes     = Otto;
	Waalkes-&gt;Geschieden  = &quot;Ja&quot;;
	Waalkes-&gt;Gehalt      = 10000;
	Waalkes-&gt;Arbeitstage = 6;

	return 0;
}
</code></pre>
<p>Ich versuche also eine Instanz einer Basisklasse einer abgeleiteten zuzuweisen. Aber das funktioniert nicht. Klappt das überhaupt?? Und wenn ja, wie?<br />
Eigentlich würde ich vermuten, dass es funktioniert, da ja die abgeleitete ja die selben Eigenschaften hat wie die Basisklasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300255/basisklasse-auf-abgeleitete-klasse-anwenden</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 22:00:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300255.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Feb 2012 20:09:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Basisklasse auf abgeleitete Klasse anwenden on Tue, 28 Feb 2012 20:09:18 GMT]]></title><description><![CDATA[<p>Guten Abend,</p>
<p>vielleicht stehe ich gerade etwas auf dem Schlauch aber ich habe folgenden Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

class Mensch
{
public:
	string Vorname;
	string Nachmane;
	int    Alter;
	string Wohnort;
};

class Komiker : public Mensch
{
public:
	string Geschieden;
	double Gehalt;
	int    Arbeitstage;
};

int main()
{
	Mensch *Otto   = new Mensch();
	Otto-&gt;Vorname  = &quot;Otto&quot;;
	Otto-&gt;Nachmane = &quot;Waalkes&quot;;
	Otto-&gt;Alter    = 63;
	Otto-&gt;Wohnort  = &quot;Emden&quot;;

	Komiker *Waalkes     = Otto;
	Waalkes-&gt;Geschieden  = &quot;Ja&quot;;
	Waalkes-&gt;Gehalt      = 10000;
	Waalkes-&gt;Arbeitstage = 6;

	return 0;
}
</code></pre>
<p>Ich versuche also eine Instanz einer Basisklasse einer abgeleiteten zuzuweisen. Aber das funktioniert nicht. Klappt das überhaupt?? Und wenn ja, wie?<br />
Eigentlich würde ich vermuten, dass es funktioniert, da ja die abgeleitete ja die selben Eigenschaften hat wie die Basisklasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186787</guid><dc:creator><![CDATA[secondsun]]></dc:creator><pubDate>Tue, 28 Feb 2012 20:09:18 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse auf abgeleitete Klasse anwenden on Tue, 28 Feb 2012 20:14:49 GMT]]></title><description><![CDATA[<p>Naja, ein Mensch ist halt auch kein Komiker. Der braucht z.B. auch weniger Speicehr. Das macht so keinen Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186790</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Tue, 28 Feb 2012 20:14:49 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse auf abgeleitete Klasse anwenden on Tue, 28 Feb 2012 20:16:34 GMT]]></title><description><![CDATA[<p>Die Zuweisung</p>
<pre><code class="language-cpp">Komiker *Waalkes     = Otto;
</code></pre>
<p>ist falsch.</p>
<p>Jeder Komiker ist ein Mensch. Das heisst du kannst einen Komiker einer Mensch-Variable zuordnen.<br />
Aber nicht jeder Mensch ist ein Komiker. Deswegen kannst du ohne explizite type-casts (die man meiden sollte) nicht einen Menschen einem Komiker zuweisen.</p>
<p>Was muesste bei der Zuweisung:</p>
<pre><code class="language-cpp">Komiker *Waalkes     = Otto;
</code></pre>
<p>denn deiner Meinung nach genau passieren? Otto ist ein Mensch, das heisst er hat die Eigenschaften Geschieden, Gehalt, Arbeitstage (eventuell) gar nicht. Mit welchen Werten sollen die denn bei der Zuweisung initialisiert werden? Du siehst, dass die Zuweisung nicht sinnvoll ist.</p>
<p>Haettest du zu Beginn die Zuweisung</p>
<pre><code class="language-cpp">Mensch *Otto   = new Komiker();
</code></pre>
<p>gehabt, dann koenntest du ueber static_cast oder dynamic_cast die Zuweisung</p>
<pre><code class="language-cpp">Komiker *Waalkes     = dynamic_cast&lt;Komiker&gt;(Otto);
</code></pre>
<p>machen. Aber implizit funktioniert das nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186791</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Tue, 28 Feb 2012 20:16:34 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse auf abgeleitete Klasse anwenden on Tue, 28 Feb 2012 20:21:09 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

class Mensch
{
public:
    string Vorname;
    string Nachmane;
    int    Alter;
    string Wohnort;
};

class Komiker : public Mensch
{
public:
    string Geschieden;
    double Gehalt;
    int    Arbeitstage;
};

int main()
{
    Komiker *Otto   = new Komiker();
    Otto-&gt;Vorname  = &quot;Otto&quot;;
    Otto-&gt;Nachmane = &quot;Waalkes&quot;;
    Otto-&gt;Alter    = 63;
    Otto-&gt;Wohnort  = &quot;Emden&quot;;
    Otto-&gt;Geschieden  = &quot;Ja&quot;;
    Otto-&gt;Gehalt      = 10000;
    Otto-&gt;Arbeitstage = 6;

    return 0;
}
</code></pre>
<p>Probiers mal so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186792</guid><dc:creator><![CDATA[Videonauth]]></dc:creator><pubDate>Tue, 28 Feb 2012 20:21:09 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse auf abgeleitete Klasse anwenden on Tue, 28 Feb 2012 20:28:14 GMT]]></title><description><![CDATA[<p>Ich merke schon, das Beispiel mit dem Komiker und dem Mensch ist nicht so ganz toll:-P</p>
<p>Es geht eigentlich um eine Sache, die mir auf der Arbeit keine Ruhe gelassen hat.<br />
Also in Wirklichkeit konsumiere ich einen WebService. Dort bekomme ich einen vector&lt;Klasse&gt; zurück. Von dieser Klasse wollte ich eine Klasse ableiten die um zwei Eigenschaften erweitert wurde. Aus Bequemlichkeit dachte ich mir jetzt, dass ich mir einfach ein neues abgeleitetes Objekt erstellen, das Objekt der Basisklasse zuweisen und dann die beiden anderen neuen Eigenschaften befüllen könnte. Einfach nur weil ich faul bin:-P</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186793</guid><dc:creator><![CDATA[secondsun]]></dc:creator><pubDate>Tue, 28 Feb 2012 20:28:14 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse auf abgeleitete Klasse anwenden on Tue, 28 Feb 2012 20:37:39 GMT]]></title><description><![CDATA[<p>Bei vector&lt;T&gt; würd ich sagen Stichwort Covariance. Ist problematisch. Ansonsten geht das wie gesagt nicht und macht auch keinen Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186797</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Tue, 28 Feb 2012 20:37:39 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse auf abgeleitete Klasse anwenden on Tue, 28 Feb 2012 21:06:52 GMT]]></title><description><![CDATA[<p>secondsun schrieb:</p>
<blockquote>
<p>Dort bekomme ich einen vector&lt;Klasse&gt; zurück. Von dieser Klasse wollte ich eine Klasse ableiten die um zwei Eigenschaften erweitert wurde. Aus Bequemlichkeit dachte ich mir jetzt, dass ich mir einfach ein neues abgeleitetes Objekt erstellen,</p>
</blockquote>
<p>Gib Deiner abgeleiteten Klasse einen Konstruktor, der als Parameter ein Objekt vom Typ der Basisklasse bekommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186807</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Tue, 28 Feb 2012 21:06:52 GMT</pubDate></item></channel></rss>