<?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[std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum?]]></title><description><![CDATA[<p>ich habe ein kleines problemchen<br />
Ich habe eine Klasse Town mit diversen methoden unter anderem die Methode<br />
void grow()<br />
{<br />
++money;<br />
++reasearch;<br />
.. usw<br />
} sie soll verschiedene attribute des Objektes addieren</p>
<p>jetzt habe ich eine main geschrieben ..</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;conio.h&gt;// für _getch().. voerst nicht gebraucht
#include&lt;string&gt;
using std::getline;
using std::string;
#include &lt;iostream&gt;
using std::cout;
using std::cin;
using std::endl;
using std::cerr;
using std::cin;
#include&lt;list&gt;
#include &lt;iterator&gt;
#include &lt;algorithm&gt;
#include &quot;Town.h&quot;
typedef std::list&lt;Town&gt; Townlist;
int main()
{
	Townlist Towns;
	std::ostream_iterator&lt;Town&gt; output(cout, &quot; &quot;);
	Town *pTown;

	pTown=new Town(&quot;Heidelberg&quot;);
	pTown-&gt;grow(); // funktioniert .
	Towns.push_back(*pTown);
	pTown=new Town(&quot;Mannheim&quot;);
	Towns.push_back(*pTown);
	std::copy(Towns.begin(),Towns.end(), output);

	//Auf alle Objekte grow() anwenden.
    std::for_each(Towns.begin(),Towns.end(), pTown-&gt;grow());//funtktioniert
// nicht for_each soll auf alle in der Liste befindlichen objekte grow() //anwenden. und deren attribute addieren
...
return 0;
</code></pre>
<p>gibt fehler :<br />
<em>error C2784: &quot;_Fn1 std::for_each(_InIt,_InIt,_Fn1)&quot;: template-Argument für &quot;_Fn1&quot; konnte nicht von &quot;void&quot; hergeleitet werden.<br />
c:\programme\microsoft visual studio 8\vc\include\algorithm(22): Siehe Deklaration von 'std::for_each'</em></p>
<p>ich dachte die <strong>for_each</strong>-funktion wendet nun auf alle in der liste gespeicherten objekte die methode grow() an. leider gehts nicht hat jemand eine lösung?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184126/std-for_each-mit-eigener-funktion-aufrufen-funktioniert-nicht-warum</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 14:41:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184126.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Jun 2007 14:38:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 14:49:01 GMT]]></title><description><![CDATA[<p>ich habe ein kleines problemchen<br />
Ich habe eine Klasse Town mit diversen methoden unter anderem die Methode<br />
void grow()<br />
{<br />
++money;<br />
++reasearch;<br />
.. usw<br />
} sie soll verschiedene attribute des Objektes addieren</p>
<p>jetzt habe ich eine main geschrieben ..</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;conio.h&gt;// für _getch().. voerst nicht gebraucht
#include&lt;string&gt;
using std::getline;
using std::string;
#include &lt;iostream&gt;
using std::cout;
using std::cin;
using std::endl;
using std::cerr;
using std::cin;
#include&lt;list&gt;
#include &lt;iterator&gt;
#include &lt;algorithm&gt;
#include &quot;Town.h&quot;
typedef std::list&lt;Town&gt; Townlist;
int main()
{
	Townlist Towns;
	std::ostream_iterator&lt;Town&gt; output(cout, &quot; &quot;);
	Town *pTown;

	pTown=new Town(&quot;Heidelberg&quot;);
	pTown-&gt;grow(); // funktioniert .
	Towns.push_back(*pTown);
	pTown=new Town(&quot;Mannheim&quot;);
	Towns.push_back(*pTown);
	std::copy(Towns.begin(),Towns.end(), output);

	//Auf alle Objekte grow() anwenden.
    std::for_each(Towns.begin(),Towns.end(), pTown-&gt;grow());//funtktioniert
// nicht for_each soll auf alle in der Liste befindlichen objekte grow() //anwenden. und deren attribute addieren
...
return 0;
</code></pre>
<p>gibt fehler :<br />
<em>error C2784: &quot;_Fn1 std::for_each(_InIt,_InIt,_Fn1)&quot;: template-Argument für &quot;_Fn1&quot; konnte nicht von &quot;void&quot; hergeleitet werden.<br />
c:\programme\microsoft visual studio 8\vc\include\algorithm(22): Siehe Deklaration von 'std::for_each'</em></p>
<p>ich dachte die <strong>for_each</strong>-funktion wendet nun auf alle in der liste gespeicherten objekte die methode grow() an. leider gehts nicht hat jemand eine lösung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304135</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Tue, 12 Jun 2007 14:49:01 GMT</pubDate></item><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 14:51:15 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;functional&gt;

std::for_each(Towns.begin(),Towns.end(), std::mem_fun(&amp;Town::grow));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304144</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Tue, 12 Jun 2007 14:51:15 GMT</pubDate></item><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 14:51:54 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/algorithm/for_each.html" rel="nofollow">http://www.cplusplus.com/reference/algorithm/for_each.html</a></p>
<p>Grow muss ein &quot;Town&quot; als Argument haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304145</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Tue, 12 Jun 2007 14:51:54 GMT</pubDate></item><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 16:07:49 GMT]]></title><description><![CDATA[<p>Checker&amp;Murckser schrieb:</p>
<blockquote>
<p><a href="http://www.cplusplus.com/reference/algorithm/for_each.html" rel="nofollow">http://www.cplusplus.com/reference/algorithm/for_each.html</a></p>
<p>Grow muss ein &quot;Town&quot; als Argument haben.</p>
</blockquote>
<p>was meinst du?<br />
//grow ist methode von klasse Town<br />
void grow(Town &amp;) //hab ich probiert auch compiler_meckern..<br />
{<br />
++money;<br />
++reasearch;<br />
.. usw<br />
}<br />
oder</p>
<p>der aufruf<br />
std::for_each(Towns.begin(),Towns.end(), std::mem_fun(&amp;Town::grow**(.<em>hier was?</em>.)**);<br />
oder was hast du gemeint?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304172</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Tue, 12 Jun 2007 16:07:49 GMT</pubDate></item><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 16:41:37 GMT]]></title><description><![CDATA[<p>sten schrieb:</p>
<blockquote>
<p>oder was hast du gemeint?</p>
</blockquote>
<p>Schau Dir doch evtl. mal die Antwort von finix an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304248</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 12 Jun 2007 16:41:37 GMT</pubDate></item><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 16:48:58 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;list&gt;
#include &lt;iterator&gt;
#include &lt;algorithm&gt;
#include &quot;Town.h&quot;

void grow(const Town&amp;);

int main()
{
    std::list&lt;Town&gt; Towns;
    Towns.push_back(Town(&quot;Heidelberg&quot;));
    Towns.push_back(Town(&quot;Mannheim&quot;));
    std::copy(Towns.begin(),Towns.end(), std::ostream_iterator&lt;Town&gt; output(std::cout, &quot; &quot;));
    std::for_each(Towns.begin(),Towns.end(), grow);
    std::copy(Towns.begin(),Towns.end(), std::ostream_iterator&lt;Town&gt; output(std::cout, &quot; &quot;));
};

void grow(const Town&amp; town)
{
    town.grow();
}
</code></pre>
<p>?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304254</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 12 Jun 2007 16:48:58 GMT</pubDate></item><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 16:59:56 GMT]]></title><description><![CDATA[<p>sten schrieb:</p>
<blockquote>
<p>der aufruf<br />
std::for_each(Towns.begin(),Towns.end(), std::mem_fun(&amp;Town::grow**(.<em>hier was?</em>.)**);<br />
oder was hast du gemeint?</p>
</blockquote>
<p>Oops. Hatte nur das <code>pTown-&gt;grow()</code> gesehen, dachte du hantierst mit Pointern.</p>
<pre><code class="language-cpp">std::for_each(Towns.begin(),Towns.end(), std::mem_fun_ref(&amp;Town::grow))
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304267</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Tue, 12 Jun 2007 16:59:56 GMT</pubDate></item><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 17:08:24 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;list&gt;
#include &lt;iterator&gt;
#include &lt;algorithm&gt;
#include &quot;Town.h&quot;

void grow( Town&amp;); 

int main() 
{ 
    std::list&lt;Town&gt; Towns; 
    Town* pTown; 
	std::ostream_iterator&lt;Town&gt;output(cout, &quot; &quot;);

    pTown=new Town(&quot;Heidelberg&quot;); 
    Towns.push_back(*pTown); 
    pTown=new Town(&quot;Mannheim&quot;); 
    Towns.push_back(*pTown); 
   
    std::for_each(Towns.begin(),Towns.end(), grow); 
    std::copy(Towns.begin(), Towns.end(),output);
}; 

void grow( Town&amp; town) 
{ 
    town.grow(); 
}
</code></pre>
<p>?!</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
danke aber das ganze geht nur ohne <strong>const</strong> weil sonst:<br />
<em>error C2662: 'Town::grow': this-Zeiger kann nicht von 'const Town' in 'Town &amp;' konvertiert werden<br />
Durch die Konvertierung gehen Qualifizierer verloren</em></p>
<p>aber trotzdem danke konnte nicht um die ecke denken</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304273</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:08:24 GMT</pubDate></item><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 17:07:36 GMT]]></title><description><![CDATA[<p>hmm aber das mit mem_fun_ptr sollte auch gehen <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="🙂"
    /> wäre etwas einfacher <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1304275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304275</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:07:36 GMT</pubDate></item><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 17:25:08 GMT]]></title><description><![CDATA[<blockquote>
<p>Oops. Hatte nur das pTown-&gt;grow() gesehen, dachte du hantierst mit Pointern.</p>
<p>C/C++ Code:<br />
std::for_each(Towns.begin(),Towns.end(), std::mem_fun_ref(&amp;Town::grow))</p>
</blockquote>
<p>thx finix <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>noch eine sache ... hmm ich belege jetzt dynamischen speicher, ich denke<br />
am ende des programms sollte man den wieder freigeben.<br />
geht irgendwie mit</p>
<pre><code class="language-cpp">delete... blabala
</code></pre>
<p>wie lautet der genaue code .. <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="🙂"
    /><br />
in dem fall.<br />
reicht da</p>
<pre><code class="language-cpp">delete pTown;
</code></pre>
<p>weil ich hab ja eigentlich mehrere objekte.?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304283</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:25:08 GMT</pubDate></item><item><title><![CDATA[Reply to std::for_each mit eigener funktion aufrufen funktioniert nicht ...warum? on Tue, 12 Jun 2007 17:25:53 GMT]]></title><description><![CDATA[<p>nja ... ist nen bissel dumm was du da machst ... da du die Objekte beim einfügen ja wieder kopierst ...</p>
<pre><code class="language-cpp">pTown=new Town(&quot;Heidelberg&quot;);
Towns.push_back(*pTown); 
delete pTown;
pTown=new Town(&quot;Mannheim&quot;);
Towns.push_back(*pTown); 
delete pTown;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304304</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:25:53 GMT</pubDate></item></channel></rss>