<?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[problem bei iterator initialisierung]]></title><description><![CDATA[<p>hallo,</p>
<p>und zwar habe ich folgendes problem: ich bekomme immer die fehlermeldung</p>
<blockquote>
<p>instantiated from `FGraph&lt;T&gt;::desc_iter::desc_iter(T*) [with T = Node]'</p>
</blockquote>
<p>(node ist die klasse die für das template einspringt)</p>
<p>und hier der relevante code dazu:</p>
<pre><code class="language-cpp">class desc_iter: 
	public std::iterator&lt;std::bidirectional_iterator_tag, T&gt;{

		friend class FGraph;
		typedef FGraph&lt;T&gt; list_type;

		typename std::vector&lt;T*&gt; children;
	private:
		list_type* my;
		typename std::vector&lt;T*&gt;::iterator m_iter;

	public:

		desc_iter(T* x){
			T* ptr = x;
				my-&gt;getChildren(ptr,children);
			}.......
</code></pre>
<p>das ist die iterator klasse, die innerhalb der template klasse ist und <em><em>void getChildren(T</em> x,std::vector&lt;T</em>&gt;x)** ist eine methode in der template klasse, aber ich will von der iterator klasse darauf zugreifen --&gt; was mache ich falsch ,dass er mir immer bei &quot;my-&gt;getChildren...&quot; diese fehlermeldung bringt? ich rufe den iterator in der main so auf:</p>
<pre><code class="language-cpp">FGraph&lt;Human&gt;::descendant_iter it3(&amp;Mar);
</code></pre>
<p>//(Mar = Zeiger auf ein Node objekt)</p>
<p>hoffe ihr könnt mir helfen!</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/214243/problem-bei-iterator-initialisierung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 17:31:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/214243.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 May 2008 09:33:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 09:33:28 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>und zwar habe ich folgendes problem: ich bekomme immer die fehlermeldung</p>
<blockquote>
<p>instantiated from `FGraph&lt;T&gt;::desc_iter::desc_iter(T*) [with T = Node]'</p>
</blockquote>
<p>(node ist die klasse die für das template einspringt)</p>
<p>und hier der relevante code dazu:</p>
<pre><code class="language-cpp">class desc_iter: 
	public std::iterator&lt;std::bidirectional_iterator_tag, T&gt;{

		friend class FGraph;
		typedef FGraph&lt;T&gt; list_type;

		typename std::vector&lt;T*&gt; children;
	private:
		list_type* my;
		typename std::vector&lt;T*&gt;::iterator m_iter;

	public:

		desc_iter(T* x){
			T* ptr = x;
				my-&gt;getChildren(ptr,children);
			}.......
</code></pre>
<p>das ist die iterator klasse, die innerhalb der template klasse ist und <em><em>void getChildren(T</em> x,std::vector&lt;T</em>&gt;x)** ist eine methode in der template klasse, aber ich will von der iterator klasse darauf zugreifen --&gt; was mache ich falsch ,dass er mir immer bei &quot;my-&gt;getChildren...&quot; diese fehlermeldung bringt? ich rufe den iterator in der main so auf:</p>
<pre><code class="language-cpp">FGraph&lt;Human&gt;::descendant_iter it3(&amp;Mar);
</code></pre>
<p>//(Mar = Zeiger auf ein Node objekt)</p>
<p>hoffe ihr könnt mir helfen!</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517464</guid><dc:creator><![CDATA[int0xicated]]></dc:creator><pubDate>Tue, 27 May 2008 09:33:28 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 09:35:49 GMT]]></title><description><![CDATA[<p>Ganze Meldung lesen! Die Fehlermeldung sagt nur aus, wo der fehlerhafte Code instanziert wurde. Der eigentliche Fehler kommt erst noch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517465</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Tue, 27 May 2008 09:35:49 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 09:43:15 GMT]]></title><description><![CDATA[<p>sry, das wäre mal der ganze build:</p>
<pre><code>**** Rebuild of configuration Debug for project beispiel 4 ****

**** Internal Builder is used for build               ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -oFGraph.o ..\FGraph.cpp
g++ -O0 -g3 -Wall -c -fmessage-length=0 -oNode.o ..\Node.cpp
g++ -O0 -g3 -Wall -c -fmessage-length=0 -omain.o ..\main.cpp
..\FGraph.h: In instantiation of `FGraph&lt;Node&gt;::descendant_iter':
..\main.cpp:34:   instantiated from here
..\FGraph.h:154: error: `FGraph&lt;T&gt;::descendant_iter&amp; FGraph&lt;T&gt;::descendant_iter::operator++() [with T = Node]' and `FGraph&lt;T&gt;::descendant_iter&amp; FGraph&lt;T&gt;::descendant_iter::operator++() [with T = Human]' cannot be overloaded
..\FGraph.h: In member function `FGraph&lt;T&gt;::fwd_iter&amp; FGraph&lt;T&gt;::fwd_iter::operator++(int) [with T = Node]':
..\main.cpp:29:   instantiated from here
..\FGraph.h:59: warning: reference to local variable `tIter' returned
..\FGraph.h: In constructor `FGraph&lt;T&gt;::descendant_iter::descendant_iter(T*) [with T = Node]':
..\main.cpp:34:   instantiated from here
..\FGraph.h:132: warning: unused variable 'ptr'
Build error occurred, build is stopped
Time consumed: 3860  ms.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1517468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517468</guid><dc:creator><![CDATA[int0xicated]]></dc:creator><pubDate>Tue, 27 May 2008 09:43:15 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 09:49:49 GMT]]></title><description><![CDATA[<p>ups sry hab da noch was dazugefügt und jetzt eine erweiterte version kompiliert - ist der falsche build -&gt; das ist der richtige:</p>
<pre><code>**** Build of configuration Debug for project beispiel 4 ****

**** Internal Builder is used for build               ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -omain.o ..\main.cpp
..\FGraph.h: In member function `FGraph&lt;T&gt;::fwd_iter&amp; FGraph&lt;T&gt;::fwd_iter::operator++(int) [with T = Human]':
..\main.cpp:29:   instantiated from here
..\FGraph.h:59: warning: reference to local variable `tIter' returned
..\FGraph.h: In member function `void FGraph&lt;T&gt;::getChildren(T*, std::vector&lt;T*, std::allocator&lt;T*&gt; &gt;) [with T = Human]':
..\FGraph.h:135:   instantiated from `FGraph&lt;T&gt;::descendant_iter::descendant_iter(T*) [with T = Human]'
..\main.cpp:34:   instantiated from here
..\FGraph.h:176: warning: unused variable 'test'
g++ -O0 -g3 -Wall -c -fmessage-length=0 -oFGraph.o ..\FGraph.cpp
g++ -obeispiel4.exe main.o Human.o FGraph.o
Build complete for project beispiel 4
Time consumed: 4547  ms.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1517474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517474</guid><dc:creator><![CDATA[int0xicated]]></dc:creator><pubDate>Tue, 27 May 2008 09:49:49 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 09:52:20 GMT]]></title><description><![CDATA[<p>Also Fehler sehe ich hier keine. Und die Warnungen lauten, wörtlich übersetzt:</p>
<p>&quot;FGraph.h:59: Referenz auf lokale Variable tIter wird zurückgegeben&quot;<br />
&quot;FGraph.h:176: Variable test wird nirgends benutzt&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517475</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Tue, 27 May 2008 09:52:20 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 09:54:30 GMT]]></title><description><![CDATA[<p>eben, ich auch nicht ... :P, aber in eclipse wird immer diese zeile rot markiert und der code lässt sich einfach nciht ausführen:</p>
<pre><code class="language-cpp">my-&gt;getChildren(ptr,children);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1517479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517479</guid><dc:creator><![CDATA[int0xicated]]></dc:creator><pubDate>Tue, 27 May 2008 09:54:30 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 09:57:01 GMT]]></title><description><![CDATA[<p>Also laut dem Build-Log war die Erzeugung der obeispiel4.exe erfolgreich. Dein Eclipse spinnt :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517481</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Tue, 27 May 2008 09:57:01 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 10:15:52 GMT]]></title><description><![CDATA[<p>hmm hab jetzt neugestartet, aber immer noch das selbe problem <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>
<p>ich hab jetzt das programm trotzdem ausgeführt, obwohl eclipse mich gefragt hat, ob trotz fehler bla ... und bekomme dann eine endlosschleife öÖ ... ich glaube es liegt an der methode:</p>
<pre><code class="language-cpp">void getChildren(T* x,std::vector&lt;T*&gt; children){

		T *myTPtrx = x;
		bool found = false;
		unsigned int myidx = 0;
		T *test = myVec[myidx];
		while((unsigned)myidx != myVec.size()){

			if(myVec[myidx] == myTPtrx){
				for(unsigned int i = 0;i&lt;myVec.size();i++){
					for(unsigned int j = 0;j&lt;myVec.size();j++){
						if((unsigned)myMap[i][j] == 1 &amp;&amp; (i == myidx)){
								children.push_back(myVec[j]);
								std::cout&lt;&lt;&quot;children &quot;&lt;&lt;j&lt;&lt;&quot; &quot;&lt;&lt;myMap.size()&lt;&lt;&quot; &quot;&lt;&lt;myVec.size()&lt;&lt;std::endl;
								myTPtrx = myVec[j];
								found = true;
							}

					}
				}
			}
			if(found){
				myidx = 0;
				found = false;
			}
			else{
				myidx++;
				}
		}
	}
</code></pre>
<p>aber seltsamerweise funktioniert das ganze außerhalb der iterator klasse, aber nur nicht wenn ich das über die iteratorklasse aufrufe :((((</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517495</guid><dc:creator><![CDATA[int0xicated]]></dc:creator><pubDate>Tue, 27 May 2008 10:15:52 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 10:17:59 GMT]]></title><description><![CDATA[<p>man ist das blöd, wenn man nicht registriert ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> -&gt; naja sry für den doppelpost, aber wollte noch hinzufügen, dass das prog ab hier abstürzt und es kommt eine windows &quot;problem wurde festgestellt&quot;-fenster:</p>
<pre><code class="language-cpp">if(myVec[myidx] == myTPtrx){....
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1517499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517499</guid><dc:creator><![CDATA[int0xicated]]></dc:creator><pubDate>Tue, 27 May 2008 10:17:59 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 11:08:33 GMT]]></title><description><![CDATA[<p>int0xicated schrieb:</p>
<blockquote>
<p>man ist das blöd, wenn man nicht registriert ist...</p>
</blockquote>
<p>DAS wäre ja nun schnell und preiswert zu ändern... :p <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="😉"
    /></p>
<blockquote>
<p>...&quot;FGraph.h:59: Referenz auf lokale Variable tIter wird zurückgegeben&quot;...</p>
</blockquote>
<p>Dass der Compiler hier weitermacht, bedeutet aber nicht, dass alles in Ordnung sei.<br />
Das ist IMHO ein sehr gefährlicher Fehler, den man unbedingt ausmerzen sollte.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517541</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 27 May 2008 11:08:33 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 11:51:25 GMT]]></title><description><![CDATA[<p>hmm aber wie kann ich den ausmerzen? ich brauch den titer für diese methode bzw. imkrement operator -&gt; man machts ja auch so, glaub ich.</p>
<pre><code class="language-cpp">fwd_iter &amp;operator++(int){
			if(m_iter==m_end)//edit
				return(*this);
			fwd_iter tIter = *this;
			++m_iter;
			return (tIter);
		}
</code></pre>
<p>aber habt ihr keine ahnung, weshalb das ding immer abstürzt? ich verzweifle nämlich schon fast und sollte eigentlich shcon fertig sein.</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517569</guid><dc:creator><![CDATA[int0xicated]]></dc:creator><pubDate>Tue, 27 May 2008 11:51:25 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 11:56:18 GMT]]></title><description><![CDATA[<p>Gib halt <strong>keine</strong> Referenz zurück. Das erreichst Du sehr einfach, indem Du das &amp; wegnimmst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517574</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Tue, 27 May 2008 11:56:18 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 12:02:31 GMT]]></title><description><![CDATA[<p>Hier stand Blödsinn...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517578</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 27 May 2008 12:02:31 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 12:09:16 GMT]]></title><description><![CDATA[<p>so jetzt gebe ich im Konstruktor vom iterator eine referenz auf die hauptklasse fgraph mit und damit gehts ... wieso geht es sonst nicht? öÖ</p>
<p>descendant_iter(T* x,FGraph&amp; g){<br />
g.getChildren(x,children);<br />
m_end=children.end();<br />
m_iter=children.begin();</p>
<p>}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517590</guid><dc:creator><![CDATA[int0xicated]]></dc:creator><pubDate>Tue, 27 May 2008 12:09:16 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 12:16:52 GMT]]></title><description><![CDATA[<p>Möglicherweise Zufall? Hast Du die Warnungen inzwischen korrigiert?</p>
<p>Dir sollte auch klar sein, dass die Funktion getChildren das Argument children <strong>nicht</strong> verändert? (Call-By-Value)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517600</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Tue, 27 May 2008 12:16:52 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 12:21:14 GMT]]></title><description><![CDATA[<p>int0xicated schrieb:</p>
<blockquote>
<p>... wieso geht es sonst nicht? öÖ<br />
...</p>
</blockquote>
<p>Eben weil Du eine Referenz auf ein lokales Objekt zurückgibst ... wie es die Warnung besagte.<br />
Mit einer &quot;Warnung&quot; sagt Dir der Compiler halt: &quot;Das kann ich zwar verarbeiten ... aber ich bezweifele, dass da das rauskommt, was Du möchtest&quot;<br />
Hier halt: &quot;Du gibst eine Referenz zurück auf ein Objekt, dass nicht mehr existiert&quot; =&gt; Ergo: Es wird &quot;krachen&quot;, wenn Du darauf zugreifst. (@Forenpolizei: Jaja... ich weiß, es ist &quot;undefiniert&quot; - was nicht bedeutet, dass es &quot;krachen&quot; uss..... aber hier hat er offensichtlich das Glück, dass es &quot;kracht&quot;).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517606</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 27 May 2008 12:21:14 GMT</pubDate></item><item><title><![CDATA[Reply to problem bei iterator initialisierung on Tue, 27 May 2008 12:31:36 GMT]]></title><description><![CDATA[<p>ja, hab alle warnungen ausgebessert und wegen der call by value sache, da bin ich auch draufgekommen und habs ausgebessert. danke euch!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517616</guid><dc:creator><![CDATA[int0xicated]]></dc:creator><pubDate>Tue, 27 May 2008 12:31:36 GMT</pubDate></item></channel></rss>