<?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[Frage zum casten]]></title><description><![CDATA[<p>Ich habe folgendes Programm geschrieben und erhalte an der markierten Stelle den angegeben Fehler:</p>
<pre><code class="language-cpp">struct Beispiel {
	int a;  
	Beispiel():a(1){};
};

struct Erbe_von_Beispiel: Beispiel
{ 

   int wert1; 
   int wert2; 

   Erbe_von_Beispiel(int wert1_, int wert2_):Beispiel()  { wert1 = wert1_; wert2 = wert2_;a=2;}; 

}; 

int main() {

	Beispiel n;				//Ein Beispiel erzeugen
	Erbe_von_Beispiel i(1,2);    //Einen Erben von Beispiel erzeugen
	n=i;					//n soll jetzt Erbe_von_Beispiel aufnehmen

	i=(Erbe_von_Beispiel)n; //zurückkonvertieren zum &quot;Erben von Beispiel&quot; und i zuweisen.
	/*error C2440: 'type cast' : 'struct Beispiel' kann nicht in 'struct Erbe_von_Beispiel' konvertiert werden
    Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Ueberladungsaufloesung des Konstruktors ist mehrdeutig*/

return 0;
}
</code></pre>
<p>Warum funktioniert das nicht, da in n ja wirklich eine Struktur vom Typ<br />
&quot;Erbe_von_Beispiel&quot; vorhanden ist?</p>
<p>Wie mache ich das richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/140234/frage-zum-casten</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 22:17:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140234.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 13 Mar 2006 13:04:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zum casten on Mon, 13 Mar 2006 13:04:23 GMT]]></title><description><![CDATA[<p>Ich habe folgendes Programm geschrieben und erhalte an der markierten Stelle den angegeben Fehler:</p>
<pre><code class="language-cpp">struct Beispiel {
	int a;  
	Beispiel():a(1){};
};

struct Erbe_von_Beispiel: Beispiel
{ 

   int wert1; 
   int wert2; 

   Erbe_von_Beispiel(int wert1_, int wert2_):Beispiel()  { wert1 = wert1_; wert2 = wert2_;a=2;}; 

}; 

int main() {

	Beispiel n;				//Ein Beispiel erzeugen
	Erbe_von_Beispiel i(1,2);    //Einen Erben von Beispiel erzeugen
	n=i;					//n soll jetzt Erbe_von_Beispiel aufnehmen

	i=(Erbe_von_Beispiel)n; //zurückkonvertieren zum &quot;Erben von Beispiel&quot; und i zuweisen.
	/*error C2440: 'type cast' : 'struct Beispiel' kann nicht in 'struct Erbe_von_Beispiel' konvertiert werden
    Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Ueberladungsaufloesung des Konstruktors ist mehrdeutig*/

return 0;
}
</code></pre>
<p>Warum funktioniert das nicht, da in n ja wirklich eine Struktur vom Typ<br />
&quot;Erbe_von_Beispiel&quot; vorhanden ist?</p>
<p>Wie mache ich das richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015268</guid><dc:creator><![CDATA[MisterX]]></dc:creator><pubDate>Mon, 13 Mar 2006 13:04:23 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum casten on Mon, 13 Mar 2006 13:12:29 GMT]]></title><description><![CDATA[<p>Nein, n ist kein &quot;Erbe_von_Beispiel&quot;, sondern ein stinknormales &quot;Beispiel&quot; - auch wenn du dich auf den Kopf stellst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Durch die Zuweisung hast du n den &quot;Beispiel&quot;-Teil von i zugewiesen, die in &quot;Erbe_von_Beispiel&quot; neu hinzugekommenen Teile gingen auf dem Weg verloren - und können durch einen Typcast auch nicht wieder rekonstruiert werden (das klappt nur, wenn du mit Referenzen und Pointern arbeitest - da kann sich der statische und dynamische Typ eines Objekts unterscheiden).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015282</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 13 Mar 2006 13:12:29 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum casten on Mon, 13 Mar 2006 13:49:25 GMT]]></title><description><![CDATA[<p>ich habe es jetzt so: (zumindest übersetzt er es jetzt ohne Fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">struct Beispiel {
	int a;  
	Beispiel():a(1){};
};

struct Erbe_von_Beispiel: Beispiel
{ 

   int wert1; 
   int wert2; 

   Erbe_von_Beispiel(int wert1_, int wert2_):Beispiel()  { wert1 = wert1_; wert2 = wert2_;a=2;}; 

}; 

int main() {

	Beispiel *n= new Beispiel();				//Ein Beispiel erzeugen
	Erbe_von_Beispiel *i= new Erbe_von_Beispiel(1,2);    //Einen Erben von Beispiel erzeugen
	n=i;										//n soll jetzt Erbe_von_Beispiel aufnehmen

	i=(Erbe_von_Beispiel*)n; //zurückkonvertieren zum Erben von beispiel und i zuweisen.
	return 0;
}
</code></pre>
<p>Ist das jetzt richtig so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015324</guid><dc:creator><![CDATA[MisterX]]></dc:creator><pubDate>Mon, 13 Mar 2006 13:49:25 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum casten on Mon, 13 Mar 2006 13:59:07 GMT]]></title><description><![CDATA[<p>Abgesehen von einem leichten Memory-Leck (zu jedem new gehört auch ein delete) sieht das OK aus.</p>
<p>PS: Schau mal in deinem Lehrbuch nach den C++ Casts (dynamic_cast, static_cast etc.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015348</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 13 Mar 2006 13:59:07 GMT</pubDate></item></channel></rss>