<?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[Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot;]]></title><description><![CDATA[<p>Hallo,<br />
folgender, <strong>kompletter</strong> Beispielcode:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

class testklasse
{
public:
	std::vector&lt;int&gt; Testvector2;
	int testvariable;
	testklasse(std::vector&lt;int&gt; Testvector2, int testvariable);

};

testklasse::testklasse(std::vector&lt;int&gt; Testvector2, int testvariable)
{
	this-&gt;Testvector2=Testvector2;
	this-&gt;testvariable=testvariable;
}

void testfunktion(std::vector&lt;testklasse&gt;&amp; Testvector1)
{
	std::vector&lt;int&gt; tempvector;
	tempvector.push_back(12);
	tempvector.push_back(34);
	tempvector.push_back(56);

	int tempvariable = 99;

	Testvector1.push_back(testklasse(tempvector, tempvariable));

}

void testausgabe(std::vector&lt;testklasse&gt;&amp; Testvector1)
{
	std::vector&lt;testklasse&gt;::iterator i;
	for (i = Testvector1.begin(); i &lt; Testvector1.end(); i++)
	{
		std::vector&lt;int&gt;::iterator j;
		//hier kommt der Fehler: &quot;error C2065: 'Testvector2': nichtdeklarierter Bezeichner&quot;
		//Aber Testvector2 ist doch ein Teil von Testvector1, oder?
		for (j = Testvector2.begin(); j &lt; Testvector2.end(); j++)
		{
			std::cout &lt;&lt; j &lt;&lt; std::endl;
		}
	}
}

int main()
{
	std::vector&lt;testklasse&gt; Testvector1;
	testfunktion(Testvector1);
	testausgabe(Testvector1);
	return 0;
}
</code></pre>
<p>Der Knackpunkt kommt dann bei der Ausgabe vom Vector &quot;Testvector2&quot; welcher Teil von &quot;Testvector1&quot; ist. Wie komme ich dazu, dass mir Testvector2 in der Funktion testausgabe zur Verfügung steht? Muss ich den auch übergeben? Und wenn ja, wie?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293259/vector-in-vector-inkl-konstruktor-mit-vector-quot-befüllung-quot</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 10:44:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293259.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Sep 2011 19:20:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 19:20:18 GMT]]></title><description><![CDATA[<p>Hallo,<br />
folgender, <strong>kompletter</strong> Beispielcode:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

class testklasse
{
public:
	std::vector&lt;int&gt; Testvector2;
	int testvariable;
	testklasse(std::vector&lt;int&gt; Testvector2, int testvariable);

};

testklasse::testklasse(std::vector&lt;int&gt; Testvector2, int testvariable)
{
	this-&gt;Testvector2=Testvector2;
	this-&gt;testvariable=testvariable;
}

void testfunktion(std::vector&lt;testklasse&gt;&amp; Testvector1)
{
	std::vector&lt;int&gt; tempvector;
	tempvector.push_back(12);
	tempvector.push_back(34);
	tempvector.push_back(56);

	int tempvariable = 99;

	Testvector1.push_back(testklasse(tempvector, tempvariable));

}

void testausgabe(std::vector&lt;testklasse&gt;&amp; Testvector1)
{
	std::vector&lt;testklasse&gt;::iterator i;
	for (i = Testvector1.begin(); i &lt; Testvector1.end(); i++)
	{
		std::vector&lt;int&gt;::iterator j;
		//hier kommt der Fehler: &quot;error C2065: 'Testvector2': nichtdeklarierter Bezeichner&quot;
		//Aber Testvector2 ist doch ein Teil von Testvector1, oder?
		for (j = Testvector2.begin(); j &lt; Testvector2.end(); j++)
		{
			std::cout &lt;&lt; j &lt;&lt; std::endl;
		}
	}
}

int main()
{
	std::vector&lt;testklasse&gt; Testvector1;
	testfunktion(Testvector1);
	testausgabe(Testvector1);
	return 0;
}
</code></pre>
<p>Der Knackpunkt kommt dann bei der Ausgabe vom Vector &quot;Testvector2&quot; welcher Teil von &quot;Testvector1&quot; ist. Wie komme ich dazu, dass mir Testvector2 in der Funktion testausgabe zur Verfügung steht? Muss ich den auch übergeben? Und wenn ja, wie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124861</guid><dc:creator><![CDATA[thuering]]></dc:creator><pubDate>Wed, 28 Sep 2011 19:20:18 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 19:32:44 GMT]]></title><description><![CDATA[<p>Du sagst es doch schon selbst: Testvector2 ist ein Teil von testklasse, von denen du mehrere in Testvector1 hast. Also musst du das auch so schreiben. Nur weil du außendrum eine Schleife über Testvector1 hast, werden dadurch nicht magisch die Bezeichner aus dem Testvector1 innerhalb der Schleife bekannt. Du musst schon schreiben, dass du den Testvector2 von dem Element meinst, auf das sich der Iterator i bezieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124868</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 28 Sep 2011 19:32:44 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 19:41:24 GMT]]></title><description><![CDATA[<p>Und wo muss das genau bekannt gegeben werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124873</guid><dc:creator><![CDATA[thuering]]></dc:creator><pubDate>Wed, 28 Sep 2011 19:41:24 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 19:50:03 GMT]]></title><description><![CDATA[<p>thuering schrieb:</p>
<blockquote>
<p>Und wo muss das genau bekannt gegeben werden?</p>
</blockquote>
<p>Na, da wo du den Testvector2 benutzen willst. Es gibt sehr viele Testvector2 in deinem Programm, du musst daher schon sagen, welchen. Tipp: Vermutlich willst du <code>i-&gt;Testvector2.begin()</code> . Es ist aber wichtig, dass du verstehst, warum das so geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124876</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 28 Sep 2011 19:50:03 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 20:06:15 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>thuering schrieb:</p>
<blockquote>
<p>Und wo muss das genau bekannt gegeben werden?</p>
</blockquote>
<p>Na, da wo du den Testvector2 benutzen willst. Es gibt sehr viele Testvector2 in deinem Programm, du musst daher schon sagen, welchen. Tipp: Vermutlich willst du <code>i-&gt;Testvector2.begin()</code> . Es ist aber wichtig, dass du verstehst, warum das so geht.</p>
</blockquote>
<p>Ich verstehe natürlich, dass das alles sehr viel mit selber verstehen und selber ausprobieren zu tun hat. In diesem speziellen Fall würde ich aber wohl selber verstehen, wenn mir eine syntaktisch korrekte Lösung vorliegt.</p>
<p>Das Programm soll am Ende einfach nur die 3 Werte, welche in Testvector2 liegen, ausgeben. Ausgabe also:</p>
<pre><code>12
34
56
</code></pre>
<p>Da bin ich doch nur 1 Zeile entfernt von, oder?<br />
Edit: Oder auch 2 Zeilen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124878</guid><dc:creator><![CDATA[thuering]]></dc:creator><pubDate>Wed, 28 Sep 2011 20:06:15 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 20:22:41 GMT]]></title><description><![CDATA[<p>thuering schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>thuering schrieb:</p>
<blockquote>
<p>Und wo muss das genau bekannt gegeben werden?</p>
</blockquote>
<p>Na, da wo du den Testvector2 benutzen willst. Es gibt sehr viele Testvector2 in deinem Programm, du musst daher schon sagen, welchen. Tipp: Vermutlich willst du <code>i-&gt;Testvector2.begin()</code> . Es ist aber wichtig, dass du verstehst, warum das so geht.</p>
</blockquote>
<p>Ich verstehe natürlich, dass das alles sehr viel mit selber verstehen und selber ausprobieren zu tun hat. In diesem speziellen Fall würde ich aber wohl selber verstehen, wenn mir eine syntaktisch korrekte Lösung vorliegt.</p>
</blockquote>
<p>Hat mein Vorschlag denn nicht funktioniert?</p>
<blockquote>
<p>Das Programm soll am Ende einfach nur die 3 Werte, welche in Testvector2 liegen, ausgeben.</p>
</blockquote>
<p>Das ist es doch gerade: Du hast keinen einen Testvector2 (beziehungsweise du hast schon nur einen, aber das kann der Compiler nicht wissen). Du hast einen vector von testklassen. Und Jede testklasse in diesem vector hat ihren Testvector2. Wenn du einen Testvector2 benutzen möchstest, dann musst du sagen, von welcher Instanz der testklasse der Testvector2 sein soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124884</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 28 Sep 2011 20:22:41 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 20:45:37 GMT]]></title><description><![CDATA[<p>Ich habs nun verstanden, ich hatte wohl Würmer im Hirn. Der Code läuft und ich habe den Zugriff / das Warum verstanden. Ich Danke Dir für Deine Geduld! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2124892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124892</guid><dc:creator><![CDATA[thuering]]></dc:creator><pubDate>Wed, 28 Sep 2011 20:45:37 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 22:01:43 GMT]]></title><description><![CDATA[<p>Damit ich nicht noch einen extra Thread aufmache, stelle ich einfach hier, (in der Hoffnung es wird beantwortet) eine Frage:</p>
<p>Wieviele Argumente sind maximal erlaubt, wenn ich eine Funktion oder einen Konstruktor aufrufe? 256? 1024? 65536? ....?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124909</guid><dc:creator><![CDATA[thuering]]></dc:creator><pubDate>Wed, 28 Sep 2011 22:01:43 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 22:10:24 GMT]]></title><description><![CDATA[<p>Technisch kannst/mußt du so viele Parameter angeben, wie bei der Funktionsdefinition gefordert wurden. Praktisch erinnere ich mich düster an eine Grenze, die im Standard definiert wurde (auf Anhieb finde ich allerdings nur eine womöglich veraltete Angabe für C - der Compiler muß mindestens 31 Parameter unterstützen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124913</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Sep 2011 22:10:24 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 22:16:09 GMT]]></title><description><![CDATA[<p>Klar dass die Parameter auch definiert sein müssen.<br />
Oh Gott - 31 - dann hoffe ich, dass diese Angabe wirklich <em>veraltet</em> ist. Ich bin jetzt schon bei 16, aber meine &quot;Enemy&quot;-Klasse wird noch um das 5fache wachsen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Edit: Oder das gcc und/oder MSVC sich nicht nur an den <strong>Mindest</strong>standard halten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124914</guid><dc:creator><![CDATA[thuering]]></dc:creator><pubDate>Wed, 28 Sep 2011 22:16:09 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 22:17:51 GMT]]></title><description><![CDATA[<p>Also wenn du 16, oder sogar mehr, Argumente übergeben musst, behaupte ich mal, dass du etwas falsch machst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124916</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Wed, 28 Sep 2011 22:17:51 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 22:18:48 GMT]]></title><description><![CDATA[<p>thuering schrieb:</p>
<blockquote>
<p>Ich bin jetzt schon bei 16, aber meine &quot;Enemy&quot;-Klasse wird noch um das 5fache wachsen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
</blockquote>
<p>Da ist es wohl an der Zeit, ein wenig Ordnung in die Klasse reinzubekommen. Selbst wenn du damit nicht an irgendwelche Compiler-Limits kommen würdest, ist sowas einfach nur noch unübersichtlich und nicht mehr sinnvoll einsetzbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124917</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Sep 2011 22:18:48 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 22:38:12 GMT]]></title><description><![CDATA[<p>OK, ganz praktisch aufgetischt: Gerne würde ich mit einem einfachen Konstruktoraufruf einen &quot;Gegner&quot; in einem kleinen (aber regelüberladenen! (und das soll auch so)) textbasierten Rollenspiel erschaffen. Da müssen Name, Rasse, Klasse, Stufe, Erfahrung, Hitpoints, Trefferchancen, Schaden, Rüstung, Resistenzen, Waffenfertigkeiten, Spezielle Fähigkeiten, Inventar, Mut, Zauber und vieles vieles mehr festgelegt werden.</p>
<p>Aber, wenn ihr schon so kommt, gibt es sicherlich eine gute Lösung.<br />
Mir würde spontan einfallen, die komplette Gegnergenerierung in den Konstruktor selbst zu schreiben und nicht von extern (über eine seperate Funktion) die Konstruktorargumente zu setzen. Gute Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124918</guid><dc:creator><![CDATA[thuering]]></dc:creator><pubDate>Wed, 28 Sep 2011 22:38:12 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Wed, 28 Sep 2011 22:46:47 GMT]]></title><description><![CDATA[<p>Gemeinsame Eigenschaften zu neuen Klassen (oder auch nur Strukturen mit <code>public</code> -Attributen) zusammenfassen. Zum Beispiel für Offensive, Defensive, Zauber, ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124923</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 28 Sep 2011 22:46:47 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Thu, 29 Sep 2011 17:29:43 GMT]]></title><description><![CDATA[<p>So viele Daten lassen sich wohl kaum sinnvoll hardcoden, benutz dazu doch besser eine Xml-Datei oder eine Datenbank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125212</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Thu, 29 Sep 2011 17:29:43 GMT</pubDate></item><item><title><![CDATA[Reply to Vector in Vector inkl. Konstruktor mit Vector&amp;quot;befüllung&amp;quot; on Thu, 29 Sep 2011 22:03:08 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>So viele Daten lassen sich wohl kaum sinnvoll hardcoden, benutz dazu doch besser eine Xml-Datei oder eine Datenbank.</p>
</blockquote>
<p>Mache ich bereits. Zwar weder XML noch Datenbank, aber die Werte, die an den Konstruktor übergeben werden, kommen aus externen Dateien (Textdateien). Wenn ich mit meinem Programmierkenntnissen weiter komme, würde ich den ganzen Kram dann in eine SQL Datenbank packen, vorzugsweise PostgreSQL.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125318</guid><dc:creator><![CDATA[thuering]]></dc:creator><pubDate>Thu, 29 Sep 2011 22:03:08 GMT</pubDate></item></channel></rss>