<?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[falscher Rückgabewer einer Funkiotn führte zu stundenlanger Fehlersuche! (sehr interresant)]]></title><description><![CDATA[<p>Hy,<br />
ich habe gerade fast 4 stunden damit verbracht einen klitzekleine Fehler in meinem Quelltext zu finden, und hätte dabei fast mehrmals hinterienander die Nervern verlohren!<br />
Ich habe eine Funktion gechrieben, welche mir den Vektor, welcher inerhalb einer statischen KLasse als private deklariert war, zurückgeben konnte damit ich dann mittels Iteratoren auf die Elemnete dieses Vectors zurückgreifen kann.<br />
Also in etwa so:</p>
<pre><code class="language-cpp">Class a 
{	private: static vector&lt;b*&gt; c;

	public:	 static vector&lt;b*&gt; a::getVector();
};
</code></pre>
<p>nun wollte ich inerhalb einer For-schleife auf alle Elemnete des Vektors per Iterator zugreifen; also zB so:</p>
<pre><code class="language-cpp">void fkt()
{	vector&lt;b*&gt;::iterator iter;

	for(iter = a::getVector().begin(); iter != a::getVector().end; iter++)
	{	//mache etwas mit den Elementen }
}
</code></pre>
<p>Nun soweit so gut; aber, jetz kommts. Auf das erste element des Vectors wurde nie korrekt zugegriffen, da scheinbar über das Konstrukt</p>
<pre><code class="language-cpp">a::getVector().begin()
</code></pre>
<p>ein falscher start Iterator zurückgegeben wurde. Warum?<br />
Weis jemand eine erkllärung?<br />
Erst als ich eine Funktion deklarierte, welche mir direkt den Start- und Enditerator zurückgab, funktionierte mein code.<br />
Hm, ich habe dafür keinerlei erklärung, vlt ihr ja. würde mich freuen dies mal zu diskutieren., ICh bin jedenfalls froh, das mein Programm nach stundenlanger schreibarbeit und Fehlersuche nun endlich funktioniert.<br />
mfg Kante</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/161976/falscher-rückgabewer-einer-funkiotn-führte-zu-stundenlanger-fehlersuche-sehr-interresant</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 01:26:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/161976.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Oct 2006 23:28:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to falscher Rückgabewer einer Funkiotn führte zu stundenlanger Fehlersuche! (sehr interresant) on Thu, 12 Oct 2006 23:28:13 GMT]]></title><description><![CDATA[<p>Hy,<br />
ich habe gerade fast 4 stunden damit verbracht einen klitzekleine Fehler in meinem Quelltext zu finden, und hätte dabei fast mehrmals hinterienander die Nervern verlohren!<br />
Ich habe eine Funktion gechrieben, welche mir den Vektor, welcher inerhalb einer statischen KLasse als private deklariert war, zurückgeben konnte damit ich dann mittels Iteratoren auf die Elemnete dieses Vectors zurückgreifen kann.<br />
Also in etwa so:</p>
<pre><code class="language-cpp">Class a 
{	private: static vector&lt;b*&gt; c;

	public:	 static vector&lt;b*&gt; a::getVector();
};
</code></pre>
<p>nun wollte ich inerhalb einer For-schleife auf alle Elemnete des Vektors per Iterator zugreifen; also zB so:</p>
<pre><code class="language-cpp">void fkt()
{	vector&lt;b*&gt;::iterator iter;

	for(iter = a::getVector().begin(); iter != a::getVector().end; iter++)
	{	//mache etwas mit den Elementen }
}
</code></pre>
<p>Nun soweit so gut; aber, jetz kommts. Auf das erste element des Vectors wurde nie korrekt zugegriffen, da scheinbar über das Konstrukt</p>
<pre><code class="language-cpp">a::getVector().begin()
</code></pre>
<p>ein falscher start Iterator zurückgegeben wurde. Warum?<br />
Weis jemand eine erkllärung?<br />
Erst als ich eine Funktion deklarierte, welche mir direkt den Start- und Enditerator zurückgab, funktionierte mein code.<br />
Hm, ich habe dafür keinerlei erklärung, vlt ihr ja. würde mich freuen dies mal zu diskutieren., ICh bin jedenfalls froh, das mein Programm nach stundenlanger schreibarbeit und Fehlersuche nun endlich funktioniert.<br />
mfg Kante</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1153941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1153941</guid><dc:creator><![CDATA[Kante23]]></dc:creator><pubDate>Thu, 12 Oct 2006 23:28:13 GMT</pubDate></item><item><title><![CDATA[Reply to falscher Rückgabewer einer Funkiotn führte zu stundenlanger Fehlersuche! (sehr interresant) on Fri, 13 Oct 2006 05:16:31 GMT]]></title><description><![CDATA[<p>gib doch mal ne referenz zurück sonst wird der vector ja kopiert und somit sind die iteratoren von 2 verschiedenen vectors und keiner vom original.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1153962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1153962</guid><dc:creator><![CDATA[vermutung]]></dc:creator><pubDate>Fri, 13 Oct 2006 05:16:31 GMT</pubDate></item><item><title><![CDATA[Reply to falscher Rückgabewer einer Funkiotn führte zu stundenlanger Fehlersuche! (sehr interresant) on Fri, 13 Oct 2006 05:29:04 GMT]]></title><description><![CDATA[<p>Kante23 schrieb:</p>
<blockquote>
<p>Nun soweit so gut; aber, jetz kommts. Auf das erste element des Vectors wurde nie korrekt zugegriffen, da scheinbar über das Konstrukt</p>
<pre><code class="language-cpp">a::getVector().begin()
</code></pre>
<p>ein falscher start Iterator zurückgegeben wurde. Warum?</p>
</blockquote>
<p>Weil die Kopie des vectors, die der Aufruf von getVector erzeugt, gleich danach wieder zerstört wird. Dasselbe gilt für die anderen Kopien, die jedesmal am Ende des Schleifenkörpers erzeugt werden, wenn du getVector().end() aufrufst. Du arbeitest da nur mit ungültigen Iteratoren.</p>
<p>Eine Lösung wäre, wie vermutung sagte, eine (const) Referenz zurückzugeben. Oder (falls die Kopie beabsichtigt war), vorher <em>einmal</em> getVector aufzurufen, und dann auf der Kopie zu arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1153966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1153966</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Fri, 13 Oct 2006 05:29:04 GMT</pubDate></item></channel></rss>