<?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[Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string)]]></title><description><![CDATA[<p>Hallo,</p>
<p>im Rahmen meines Studiums soll ich etwas programmieren in c++. Bei dieser Aufgabe ist es notwendig Instanzen einer Klasse in einer schleife aufzurufen und die Bezeichnungen der Instanzen aus einem Vector(string) zu entnehmen.</p>
<p>Jedoch habe ich das Problem, das.<br />
1. die Zuweisung des Instanzennamens aus dem Vector nicht klappt<br />
2. die Instanz nur innerhalb einer for-schleife existiert ( soll sie aber nicht )</p>
<p>Ich würde mich sehr freuen, wenn mir jemand bei diesem Problem helfen könnte.<br />
Ich würde mich sehr freuen wenn ihr so verständlich wie möglich antwortet, da ich nicht wirklich der große Kenner von c++ bin.</p>
<p>Danke</p>
<p>Jan</p>
<pre><code class="language-cpp">int lines=&quot;Number&quot; ;  //Fallabhänige int-Zahl (Anzahl Kugeln=Anzahl Zeilen)

vector &lt;string&gt; dynVar (lines); //StringVektor für Instanzennahmen

for (int i=0; i&lt;lines; i++) { 
ostringstream convert; //Erzeugt genauso viele Strings in einem Vektor, wie Kugeln
convert &lt;&lt; i;
dynVar[i] = &quot;p&quot;+convert.str();}

for(int i=0;i&lt;lines;i++)
{
path dynVar[i]; //Instanz bilden der Klasse Path mit Name aus dynVar[Stringfeld]
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/306638/instanzen-einer-klasse-in-schleife-aufrufen-und-bezeichnungen-aus-einem-vector-string</link><generator>RSS for Node</generator><lastBuildDate>Fri, 07 Aug 2026 11:54:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306638.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Aug 2012 10:54:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 10:54:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>im Rahmen meines Studiums soll ich etwas programmieren in c++. Bei dieser Aufgabe ist es notwendig Instanzen einer Klasse in einer schleife aufzurufen und die Bezeichnungen der Instanzen aus einem Vector(string) zu entnehmen.</p>
<p>Jedoch habe ich das Problem, das.<br />
1. die Zuweisung des Instanzennamens aus dem Vector nicht klappt<br />
2. die Instanz nur innerhalb einer for-schleife existiert ( soll sie aber nicht )</p>
<p>Ich würde mich sehr freuen, wenn mir jemand bei diesem Problem helfen könnte.<br />
Ich würde mich sehr freuen wenn ihr so verständlich wie möglich antwortet, da ich nicht wirklich der große Kenner von c++ bin.</p>
<p>Danke</p>
<p>Jan</p>
<pre><code class="language-cpp">int lines=&quot;Number&quot; ;  //Fallabhänige int-Zahl (Anzahl Kugeln=Anzahl Zeilen)

vector &lt;string&gt; dynVar (lines); //StringVektor für Instanzennahmen

for (int i=0; i&lt;lines; i++) { 
ostringstream convert; //Erzeugt genauso viele Strings in einem Vektor, wie Kugeln
convert &lt;&lt; i;
dynVar[i] = &quot;p&quot;+convert.str();}

for(int i=0;i&lt;lines;i++)
{
path dynVar[i]; //Instanz bilden der Klasse Path mit Name aus dynVar[Stringfeld]
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2238238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238238</guid><dc:creator><![CDATA[hand1977]]></dc:creator><pubDate>Fri, 03 Aug 2012 10:54:34 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 10:59:18 GMT]]></title><description><![CDATA[<p>Schreib doch mal die komplette Aufgabenstellung. Das, was du geschrieben hast, macht teilweise wenig Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238243</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Fri, 03 Aug 2012 10:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 11:12:49 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>leider kann (darf) ich die Aufgabenstellung oder den bereits vorhandenen Quellcode nicht posten. Das würde Ärger geben.</p>
<p>Aber zu Erklärung:<br />
1. Die Variable lines ist eine int-Zahl deren Wert bei jedem Start des Programms anders ist. (von 0 bis quasi infinitiy)</p>
<p>2. Es müssen von einer Klasse Path genau soviele Instanzen aufgerufen werden wie der Wert der Variable lines enstspricht.</p>
<p>3. da man einen String für die Bezeichnung der Instanz braucht z.B. Path p1 benötigt man also auch genauso viele Strings. Diese Strings müssen bereitgestellt werden.</p>
<p>4.der Vektor dynVar besteht aus Strings. In der ersten for-Schleife wird dieser Vektor mit Strings befüllt ( von p0 bis p.....)</p>
<p>5. In der Zweiten for-Schleife sollen nun die Instanzen der Klasse Path mit den jeweiligen Bezeichnungen aus dynVar aufgerufen werden.</p>
<p>6. Diese Instanzen sollen die zweite for-Schleife &quot;überleben&quot;. Sie sollen später noch genutzt werden.</p>
<p>Ich hoffe es dir damit ein wenig verständlicher gemacht zu haben und danke dir für die schnelle Antwort.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238255</guid><dc:creator><![CDATA[hand1977]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:12:49 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 11:28:07 GMT]]></title><description><![CDATA[<p>In Zeile 13 machst du nicht, was du denkst. Da nutzt du eine spezielle Compilererweiterung (mindestens beim GCC), daher gibt es keine Fehler, aber da wird ein lokales Array mit i Elementen vom Typ path und dem Namen dynVar angelegt.</p>
<p>Ich verstehe auch nicht, was die Schleife 11-14 überhaupt soll, füll deinen Ergebnisvector doch einfach in Zeile 8 und lass den Umweg über Zwischenergebnis (den string-Vector) ganz weg, falls du ihn später nicht mehr brauchst.</p>
<p>Nachtrag: Da passt noch viel mehr nicht zusammen, Zeile 1 ist zum Beispiel schon ziemlicher Unsinn. Einem int den Wert eines Zeigers auf ein Zeichenkettenliteral zuweisen? Ist das wirklich dein Code? Der sollte Warnungen werfen ohne Ende und das zurecht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238261</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:28:07 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 11:42:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>also ich weis nicht ob ich das richtig verstanden habe, meintest du so?<br />
Wenn du mit Ergebnisvektor Path meinst, stimmt das nicht ganz. Path ist eine Klasse, die nur entsprechend oft mit verschieden bezeichneten Instanzen aufgerufen werden soll.</p>
<pre><code class="language-cpp">int lines=0 ;  //Fallabhänige int-Zahl (Anzahl Kugeln=Anzahl Zeilen)

ifstream Zaehlen(&quot;init.txt&quot;);  // Dieser Block zählt
while(getline(Zaehlen,line)) lines++;
Zaehlen.close(); 

//vector &lt;string&gt; dynVar (lines); //StringVektor für Instanzennahmen 

for (int i=0; i&lt;lines; i++) { 
ostringstream convert; //Erzeugt genauso viele Strings in einem Vektor, wie Kugeln 
convert &lt;&lt; i; 
//dynVar[i] = &quot;p&quot;+convert.str(); 
Path i;}

//for(int i=0;i&lt;lines;i++) 
//{ 
//path dynVar[i]; //Instanz bilden der Klasse Path mit Name aus //dynVar[Stringfeld] 
//}
</code></pre>
<p>Das funktioniert leider auch nicht:<br />
Fehler 2 error C2371: 'i': Neudefinition; unterschiedliche Basistypen</p>
<p>Vielleicht habe ich dich missverstanden.</p>
<p>Danke</p>
<p>Jan</p>
<p>Nachtrag: Ok, war jetzt vielleicht ein wenig umständlich, aber &quot;Number&quot; sollte nur darstellen das irgendeine int-zahl dort steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238266</guid><dc:creator><![CDATA[hand1977]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:42:18 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 11:42:09 GMT]]></title><description><![CDATA[<p>hand1977 schrieb:</p>
<blockquote>
<p>3. da man einen String für die Bezeichnung der Instanz braucht z.B. Path p1 benötigt man also auch genauso viele Strings. Diese Strings müssen bereitgestellt werden.</p>
</blockquote>
<p>Ist das explizit Teil der Aufgabenstellung oder ist das dein Ansatz?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238270</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:42:09 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 11:45:49 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>hand1977 schrieb:</p>
<blockquote>
<p>3. da man einen String für die Bezeichnung der Instanz braucht z.B. Path p1 benötigt man also auch genauso viele Strings. Diese Strings müssen bereitgestellt werden.</p>
</blockquote>
<p>Ist das explizit Teil der Aufgabenstellung oder ist das dein Ansatz?</p>
</blockquote>
<p>Das ist mein Ansatz das Problem der vielen Instanzen zu lösen die auftreten können (aber nicht müssen). Gefordert ist nur das es die selbe Anzahl an Instanzen sind wie der Wert in lines.<br />
Eine weitere Hürde ist, das ich an der Klasse Path nicht &quot;rumwerkeln&quot; darf. Sie wurde mir fertig gegeben. Und Sie funktioniert auch.<br />
Nur das automatisierte Aufrufen mehrerer Instanzen von Path ohne ständig am Code zu schreiben bereitet mir Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238271</guid><dc:creator><![CDATA[hand1977]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 11:47:43 GMT]]></title><description><![CDATA[<p>ok, das dachte ich mir.</p>
<p>Du denkst viel zu kompliziert. Erstell dir doch einfach einen std::vector&lt;Path&gt; mit der eingelesenen Größe...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238273</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:47:43 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 11:49:56 GMT]]></title><description><![CDATA[<blockquote>
<p>also ich weis nicht ob ich das richtig verstanden habe, meintest du so?</p>
</blockquote>
<p>Nein, so meinte ich das nicht, schließlich ist es falsch, wie dir der Compiler schon gesagt hat. Aber es ist von der Idee her zumindest schon mal näher dran.</p>
<blockquote>
<p>Wenn du mit Ergebnisvektor Path meinst, stimmt das nicht ganz. Path ist eine Klasse, die nur entsprechend oft mit verschieden bezeichneten Instanzen aufgerufen werden soll.</p>
</blockquote>
<p>Das ist mir schon klar, lies im Zweifel nochmal meine Antwort genauer.</p>
<p>Dein Problem hier ist: Du kannst die Syntax von C++ nicht. Wie schon im ersten Codebeispiel kann man bei der verbesserten Version zwar erkennen, was du wohl meinst (eher wegen der Kommentare), aber der Code passt überhaupt nicht dazu und bedeutet etwas ganz anderes. Hier fällst du ein bisschen damit herein, dass in C++ so vieles möglich ist, so dass vieles was falsch gemeint ist, am Ende doch kein Compilerfehler ist, weil es zufällig etwas anderes bedeutet. Hier noch nicht einmal das.</p>
<p>Die Frage ist nun, zeige ich dir einfach die richtige Syntax oder lasse ich dich nochmal lernen? Wenn ich es dir einfach hinklatsche, dann siehst du zwar, wie es richtig gehst, guckst es dir an, sagst du hättest es nun verstanden, lernst aber in Wirklichkeit nix. Die Grundlagen, wie man Variablen richtig deklariert, wie Zuweisungen funktionieren, usw. sind aber zu wichtig. Das musst du können. Daher schicke ich dich erstmal nochmal zurück an ein Lehrbuch (siehe zweiter Link in meiner Signatur, falls du noch gute Bücher brauchst), dort noch einmal die Grundlagen angucken. Dir fehlt meiner Meinung nach im Moment zu viel, als dass dir eine Komplettlösung gut täte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238274</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:49:56 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 12:03:17 GMT]]></title><description><![CDATA[<p>Oh...ok....<br />
...und... wie geht das genau <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Nachtrag: Ah, ich glaube jetzt dämmerts. Du meinst einen Vektor der genauso viele Felder wie Anzahl lines enthält und jedes Feld ist eine Instanz der klasse Path? oder?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238275</guid><dc:creator><![CDATA[hand1977]]></dc:creator><pubDate>Fri, 03 Aug 2012 12:03:17 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 11:53:02 GMT]]></title><description><![CDATA[<p>Was Du machen willst, geht in C++ nicht. Du versuchst, zur Laufzeit neue Variablen mit zur Laufzeit generierten Namen anzugelegen. Variablennamen müssen aber zur Compilezeit bereits vorliegen. Von denen bleibt im kompilierten Programm auch nichts mehr übrig.<br />
Du könntest aber zum Beispiel eine Map benutzen. Da ist ein Container der es Dir erlaubt, von einem Schlüssel auf einen Wert zu kommen:</p>
<pre><code class="language-cpp">std::map&lt;std::string, Path&gt; path_map;
for(std::size_t n = 0; n != lines; ++n)
{
   std::ostringstream sstr;
   sstr &lt;&lt; 'p' &lt;&lt; n;
   path_map[sstr.str()] = Path();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2238277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238277</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:53:02 GMT</pubDate></item><item><title><![CDATA[Reply to Instanzen einer Klasse in Schleife aufrufen und Bezeichnungen aus einem Vector(string) on Fri, 03 Aug 2012 11:52:20 GMT]]></title><description><![CDATA[<p>hand1977 schrieb:</p>
<blockquote>
<p>Oh...ok....<br />
...und... wie geht das genau <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<pre><code class="language-cpp">std::vector&lt;Path&gt; pathVec(lines);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2238279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238279</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:52:20 GMT</pubDate></item></channel></rss>