<?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[dynamisches Objekt in switch-case Anweisung erstellen]]></title><description><![CDATA[<p>Hallo,<br />
Ich lerne gerade C++ Grundlagen und habe folgendes Problem:</p>
<p>Ich habe eine Klasse &quot;wurzel&quot; und 3 direkt vererbte Klassen &quot;Teil1&quot;, &quot;Teil2&quot; &amp; &quot;Teil3&quot;. Jetzt will ich, je nach Eingabe, ein Objekt von einer dieser Teil-Klassen erzeugen. Das erzeugte Objekt braucht einen einheitlichn Zeiger, damit ich mit diesem im Programmverlauf weiterarbeiten kann(die get/set Metohden der erzeugten Objekte sind unabhängig von der Klasse gleich, da sie alle direkt von &quot;Wurzel&quot; erben). Hier der Quelltext:</p>
<pre><code class="language-cpp">unsigned int wahl;

	cout &lt;&lt; &quot;Was für ein Teil soll erstellt werden?&quot; &lt;&lt; endl 
		 &lt;&lt; &quot;(1) Teil1&quot; &lt;&lt; endl 
		 &lt;&lt; &quot;(2) Teil2&quot; &lt;&lt; endl 
		 &lt;&lt; &quot;(3) Teil3&quot; &lt;&lt; endl
		 &lt;&lt; &quot;Eingabe: &quot;;
	cin &gt;&gt; wahl;

		switch(wahl){
		case 1:
			v1* ptr = new Teil1;
			break;
	        case 2:
			Teil2* ptr = new Teil2;
			break;
		case 3:
			Teil3* ptr = new Teil3;
			break;

        //nach diesem Programmteil soll mit (*ptr) weitergearbeitet werden

	}
</code></pre>
<p>Ist das irgendwie so lösbar oder ist der Ansatz falsch?</p>
<p>Gruß<br />
NIklas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/267668/dynamisches-objekt-in-switch-case-anweisung-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 09:36:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/267668.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 May 2010 08:32:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dynamisches Objekt in switch-case Anweisung erstellen on Fri, 28 May 2010 08:34:25 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Ich lerne gerade C++ Grundlagen und habe folgendes Problem:</p>
<p>Ich habe eine Klasse &quot;wurzel&quot; und 3 direkt vererbte Klassen &quot;Teil1&quot;, &quot;Teil2&quot; &amp; &quot;Teil3&quot;. Jetzt will ich, je nach Eingabe, ein Objekt von einer dieser Teil-Klassen erzeugen. Das erzeugte Objekt braucht einen einheitlichn Zeiger, damit ich mit diesem im Programmverlauf weiterarbeiten kann(die get/set Metohden der erzeugten Objekte sind unabhängig von der Klasse gleich, da sie alle direkt von &quot;Wurzel&quot; erben). Hier der Quelltext:</p>
<pre><code class="language-cpp">unsigned int wahl;

	cout &lt;&lt; &quot;Was für ein Teil soll erstellt werden?&quot; &lt;&lt; endl 
		 &lt;&lt; &quot;(1) Teil1&quot; &lt;&lt; endl 
		 &lt;&lt; &quot;(2) Teil2&quot; &lt;&lt; endl 
		 &lt;&lt; &quot;(3) Teil3&quot; &lt;&lt; endl
		 &lt;&lt; &quot;Eingabe: &quot;;
	cin &gt;&gt; wahl;

		switch(wahl){
		case 1:
			v1* ptr = new Teil1;
			break;
	        case 2:
			Teil2* ptr = new Teil2;
			break;
		case 3:
			Teil3* ptr = new Teil3;
			break;

        //nach diesem Programmteil soll mit (*ptr) weitergearbeitet werden

	}
</code></pre>
<p>Ist das irgendwie so lösbar oder ist der Ansatz falsch?</p>
<p>Gruß<br />
NIklas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903563</guid><dc:creator><![CDATA[niklasda]]></dc:creator><pubDate>Fri, 28 May 2010 08:34:25 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisches Objekt in switch-case Anweisung erstellen on Fri, 28 May 2010 08:34:46 GMT]]></title><description><![CDATA[<p>Das Stichwort ist Polymorphie.</p>
<pre><code class="language-cpp">Basisklasse *ptr;
ptr = new AbgeleiteteKlasseEins;
ptr = new AbgeleiteteKlasseZwei;
ptr = new AbgeleiteteKlasseDrei;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1903564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903564</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Fri, 28 May 2010 08:34:46 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisches Objekt in switch-case Anweisung erstellen on Fri, 28 May 2010 08:38:45 GMT]]></title><description><![CDATA[<p>yeah...wahnsinn. Wieder soviel Leerzeit wegen ein paar so popeligen Zeilen verbracht :). Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903567</guid><dc:creator><![CDATA[niklasda]]></dc:creator><pubDate>Fri, 28 May 2010 08:38:45 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisches Objekt in switch-case Anweisung erstellen on Fri, 28 May 2010 08:44:27 GMT]]></title><description><![CDATA[<p>Anzumerken ist, dass du dann eben nur noch auf die Variablen und Methoden der Basisklasse zugreifen kannst. Das sollte bei einem vernünftigen Klassendesign aber kein Problem sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903574</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Fri, 28 May 2010 08:44:27 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisches Objekt in switch-case Anweisung erstellen on Fri, 28 May 2010 08:46:25 GMT]]></title><description><![CDATA[<p>Sonst auch daran denken das wenn du neue Variablen in einem case anlegst dies in einem Block zu tun, da du sonst mit einigen Compilern Probleme bekommst.</p>
<p>Also:</p>
<pre><code class="language-cpp">switch x{
  case 0:
    { // &lt;-- wichtig
      int y = 3;
      // was auch immer
    } // &lt;-- wichtig
    break;
  case 1: // ....
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1903577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903577</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Fri, 28 May 2010 08:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisches Objekt in switch-case Anweisung erstellen on Fri, 28 May 2010 08:48:02 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Sonst auch daran denken das wenn du neue Variablen in einem case anlegst dies in einem Block zu tun, da du sonst mit einigen Compilern Probleme bekommst.</p>
<p>Also:</p>
<pre><code class="language-cpp">switch x{
  case 0:
    { // &lt;-- wichtig
      int y = 3;
      // was auch immer
    } // &lt;-- wichtig
    break;
  case 1: // ....
};
</code></pre>
</blockquote>
<p>Und nicht vergessen die Variable _vor_ dem Switch Block zu initialisieren. <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="😉"
    /> Denn sonst kannst du damit ja nicht weiter arbeiten. Und auf ungültige Werte prüfen (default-Block im Switch).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903578</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Fri, 28 May 2010 08:48:02 GMT</pubDate></item><item><title><![CDATA[Reply to dynamisches Objekt in switch-case Anweisung erstellen on Fri, 28 May 2010 08:49:31 GMT]]></title><description><![CDATA[<p>Janjan schrieb:</p>
<blockquote>
<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Sonst auch daran denken das wenn du neue Variablen in einem case anlegst dies in einem Block zu tun, da du sonst mit einigen Compilern Probleme bekommst.</p>
<p>Also:</p>
<pre><code class="language-cpp">switch x{
  case 0:
    { // &lt;-- wichtig
      int y = 3;
      // was auch immer
    } // &lt;-- wichtig
    break;
  case 1: // ....
};
</code></pre>
</blockquote>
<p>Und nicht vergessen die Variable _vor_ dem Switch Block zu initialisieren. <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="😉"
    /> Denn sonst kannst du damit ja nicht weiter arbeiten. Und auf ungültige Werte prüfen (default-Block im Switch).</p>
</blockquote>
<p>Nein. Mein Beispiel ist für Fälle in denen (hier) y nicht mehr anderswo als in dem einen case benötigt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903579</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Fri, 28 May 2010 08:49:31 GMT</pubDate></item></channel></rss>