<?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[Iterator -&amp;gt; auf Funktion zugreifen]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ic habe folgende Situation:</p>
<pre><code class="language-cpp">class test {
private:
	static std::set&lt;test*&gt; Tests;
public:
	test() {
		Tests.insert(this);
	}
	Refresh() {}
	static void RefreshAll() {
		for(std::set&lt;test*&gt;::iterator i = Tests.begin(); i != Tests.end(); i++) {
			i-&gt;Refresh(); //Geht nicht, Compilerfehler
		}
	}
};
std::set&lt;test*&gt; test::Tests
</code></pre>
<p>Die Fehler</p>
<pre><code>error C2839: Ungültiger Rückgabetyp 'test **' für überladenen Operator '-&gt;'
error C2039: 'Refresh': Ist kein Element von 'std::_Tree&lt;_Traits&gt;::iterator
</code></pre>
<p>Wie kann ich auf die Funktion zugreifen, bzw. was mache ich falsch?</p>
<p>Danke schon im Voraus.</p>
<p>mfg<br />
mr x</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245155/iterator-gt-auf-funktion-zugreifen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 22:44:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245155.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Jul 2009 11:05:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Iterator -&amp;gt; auf Funktion zugreifen on Fri, 10 Jul 2009 11:05:55 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ic habe folgende Situation:</p>
<pre><code class="language-cpp">class test {
private:
	static std::set&lt;test*&gt; Tests;
public:
	test() {
		Tests.insert(this);
	}
	Refresh() {}
	static void RefreshAll() {
		for(std::set&lt;test*&gt;::iterator i = Tests.begin(); i != Tests.end(); i++) {
			i-&gt;Refresh(); //Geht nicht, Compilerfehler
		}
	}
};
std::set&lt;test*&gt; test::Tests
</code></pre>
<p>Die Fehler</p>
<pre><code>error C2839: Ungültiger Rückgabetyp 'test **' für überladenen Operator '-&gt;'
error C2039: 'Refresh': Ist kein Element von 'std::_Tree&lt;_Traits&gt;::iterator
</code></pre>
<p>Wie kann ich auf die Funktion zugreifen, bzw. was mache ich falsch?</p>
<p>Danke schon im Voraus.</p>
<p>mfg<br />
mr x</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740313</guid><dc:creator><![CDATA[Mr X]]></dc:creator><pubDate>Fri, 10 Jul 2009 11:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator -&amp;gt; auf Funktion zugreifen on Fri, 10 Jul 2009 11:12:53 GMT]]></title><description><![CDATA[<pre><code>(*i)-&gt;Refresh();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1740320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740320</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 10 Jul 2009 11:12:53 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator -&amp;gt; auf Funktion zugreifen on Fri, 10 Jul 2009 11:17:07 GMT]]></title><description><![CDATA[<p>Mr X schrieb:</p>
<blockquote>
<p>Wie kann ich auf die Funktion zugreifen</p>
</blockquote>
<p>Da der iteratir selber nochmal auf einen Pointer verweist, müsste es mit <code>(*i)-&gt;Refresh()</code> gehen.</p>
<p>Mr X schrieb:</p>
<blockquote>
<p>was mache ich falsch?</p>
</blockquote>
<p>Du packst Pointer in den Container - muss das sein? Wenn du die Elemente polymorph behandeln willst kommst du natürlich nicht drumherum.<br />
Vor kurzem wurde hier ein Iterator-Wrapper vorgestellt, der extra für Container mit Pointern gedacht ist (bzw. allgemein für Iteratoren, die auf Pointer verweisen:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1735620.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-p-is-1735620.html</a><br />
Du könntest dann entsprechend einen PtrIterator&lt;std::set&lt;test*&gt;::iterator&gt; nehmen und den normal dereferenzieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740327</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 10 Jul 2009 11:17:07 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator -&amp;gt; auf Funktion zugreifen on Fri, 10 Jul 2009 11:42:20 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe, es funktioniert.</p>
<p>Leider verwendet der PtrIterator Boost, das ich eigentlich nicht verwenden möchte... Darum nehme ích erstmal diese Lösung: (*i)-&gt;Refresh()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740347</guid><dc:creator><![CDATA[Mr X]]></dc:creator><pubDate>Fri, 10 Jul 2009 11:42:20 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator -&amp;gt; auf Funktion zugreifen on Fri, 10 Jul 2009 12:47:13 GMT]]></title><description><![CDATA[<p>Mr X schrieb:</p>
<blockquote>
<p>Leider verwendet der PtrIterator Boost, das ich eigentlich nicht verwenden möchte...</p>
</blockquote>
<p>Gibts n Grund? (Außer evtl. &quot;hab ich nicht installiert&quot; oder &quot;kenn ich nicht -&gt; mag ich nicht&quot;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740396</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 10 Jul 2009 12:47:13 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator -&amp;gt; auf Funktion zugreifen on Fri, 10 Jul 2009 13:11:39 GMT]]></title><description><![CDATA[<p>Eigentlich müsste es auch ein</p>
<pre><code>for_each(Tests.begin(), Tests.end(), mem_fun(&amp;test::Refresh));
</code></pre>
<p>tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740411</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 10 Jul 2009 13:11:39 GMT</pubDate></item></channel></rss>