<?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[Funtkionen als Parameter]]></title><description><![CDATA[<p>Hallo an alle die mir helfen wollen. <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="😉"
    /><br />
Ich habe eine Frage und zwar wie kann ich eine Funktion als Parameter einer anderen Funktion übergeben, damit die Funktion die übergebene Funktione aufrufen kann.<br />
Also Funktion a bekommt als Parameter Funtkion b übergeben und ruft Funktion b auf. Hoffe ich habe mich verständlich ausgedrückt.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230612/funtkionen-als-parameter</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 06:51:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230612.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Dec 2008 19:37:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funtkionen als Parameter on Mon, 29 Dec 2008 19:37:37 GMT]]></title><description><![CDATA[<p>Hallo an alle die mir helfen wollen. <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="😉"
    /><br />
Ich habe eine Frage und zwar wie kann ich eine Funktion als Parameter einer anderen Funktion übergeben, damit die Funktion die übergebene Funktione aufrufen kann.<br />
Also Funktion a bekommt als Parameter Funtkion b übergeben und ruft Funktion b auf. Hoffe ich habe mich verständlich ausgedrückt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636992</guid><dc:creator><![CDATA[TABS]]></dc:creator><pubDate>Mon, 29 Dec 2008 19:37:37 GMT</pubDate></item><item><title><![CDATA[Reply to Funtkionen als Parameter on Mon, 29 Dec 2008 19:40:10 GMT]]></title><description><![CDATA[<p>Das geht mit Pointern auf Funktionen oder auch Funktionspointern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636993</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636993</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 29 Dec 2008 19:40:10 GMT</pubDate></item><item><title><![CDATA[Reply to Funtkionen als Parameter on Mon, 29 Dec 2008 19:44:53 GMT]]></title><description><![CDATA[<p>Das geht über mehrere Wege.</p>
<p>Der eine, und für dich wohl besser geeignete Weg sind Funktionszeiger, sehr ausführlich zu beschreiben auf <a href="http://www.newty.de/fpt/index.html" rel="nofollow">http://www.newty.de/fpt/index.html</a><br />
Die andere Möglichkeit wäre, dass du eine Referenz auf einen sog. Funktor (Funktionsobjekt) übergibst. Das sind Objekte von Klassen, die den ()-Operator überladen und dementsprechend reagieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636997</guid><dc:creator><![CDATA[Brandy]]></dc:creator><pubDate>Mon, 29 Dec 2008 19:44:53 GMT</pubDate></item><item><title><![CDATA[Reply to Funtkionen als Parameter on Mon, 29 Dec 2008 19:47:26 GMT]]></title><description><![CDATA[<p>Ein kleines Beispiel:</p>
<pre><code class="language-cpp">// Zuerst definieren wir einen Funktionentyp.
typedef void function_t();

// Jetzt die Funktion, die einen Funktionszeiger nimmt.
void foo(function_t* func)
{
    func(); // Funktion aufrufen. 
}

void bar() { } // Eine Funktion...

int main()
{
    foo(&amp;bar);
}
</code></pre>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637000</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Mon, 29 Dec 2008 19:47:26 GMT</pubDate></item><item><title><![CDATA[Reply to Funtkionen als Parameter on Mon, 29 Dec 2008 19:57:49 GMT]]></title><description><![CDATA[<p>Brandy schrieb:</p>
<blockquote>
<p>Die andere Möglichkeit wäre, dass du eine Referenz auf einen sog. Funktor (Funktionsobjekt) übergibst. Das sind Objekte von Klassen, die den ()-Operator überladen und dementsprechend reagieren.</p>
</blockquote>
<p>Das Funktioniert ja so nicht. Du brauchst ja erstmal eine Basis-Klasse, die den ()-Operator virtuell macht. Dann kannst du davon abgeleitete Objekte übergeben. Dann kann man aber auch mit jeder beliebigen virtuellen Funktion arbeiten und braucht nicht den ()-Operator.</p>
<p>Was auch nicht schlecht ist, wenn du beliebige Funktionen speichern willst ist <a href="http://www.boost.org/doc/libs/1_37_0/doc/html/function.html" rel="nofollow">boost Function</a>. Aber schau dir erstmal Funktionspointer an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637006</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 29 Dec 2008 19:57:49 GMT</pubDate></item><item><title><![CDATA[Reply to Funtkionen als Parameter on Mon, 29 Dec 2008 21:02:31 GMT]]></title><description><![CDATA[<p>ProgChild schrieb:</p>
<blockquote>
<p>Das Funktioniert ja so nicht.</p>
</blockquote>
<p>Was funktioniert so nicht? Und wie kommst du auf Polymorphie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637042</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 29 Dec 2008 21:02:31 GMT</pubDate></item><item><title><![CDATA[Reply to Funtkionen als Parameter on Mon, 29 Dec 2008 21:05:13 GMT]]></title><description><![CDATA[<p>Don06 schrieb:</p>
<blockquote>
<p>Ein kleines Beispiel:</p>
<pre><code class="language-cpp">// Zuerst definieren wir einen Funktionentyp.
typedef void function_t();

// Jetzt die Funktion, die einen Funktionszeiger nimmt.
void foo(function_t* func)
{
    func(); // Funktion aufrufen. 
}

void bar() { } // Eine Funktion...

int main()
{
    foo(&amp;bar);
}
</code></pre>
<p>Gruß<br />
Don06</p>
</blockquote>
<p>was wäre das ganze ohne das typedef?<br />
functionpointer sind eins der wenigen sachen die mir syntax technisch absolut nicht einleuchten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637043</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 29 Dec 2008 21:05:13 GMT</pubDate></item><item><title><![CDATA[Reply to Funtkionen als Parameter on Mon, 29 Dec 2008 21:06:23 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Was funktioniert so nicht? Und wie kommst du auf Polymorphie?</p>
</blockquote>
<p>Einfach eine Referenz auf ein Funktions-Objekt zu übergeben. Solange man keine Templates benutzt, was ich mal vorausgesetzt habe, gibt es keinen Typ für eine Referenz auf ein beliebiges Funktionsobjekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637044</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 29 Dec 2008 21:06:23 GMT</pubDate></item><item><title><![CDATA[Reply to Funtkionen als Parameter on Mon, 29 Dec 2008 21:11:01 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>was wäre das ganze ohne das typedef?<br />
functionpointer sind eins der wenigen sachen die mir syntax technisch absolut nicht einleuchten</p>
</blockquote>
<pre><code class="language-cpp">// Jetzt die Funktion, die einen Funktionszeiger nimmt.
void foo(void (*func)())
{
    func(); // Funktion aufrufen. 
}

void bar() { } // Eine Funktion...

int main()
{
    foo(&amp;bar);
}
</code></pre>
<p>Felix :xmas1:</p>
<p>EDIT: Zur Erklärung: Solche Deklarationen immer vom Namen (innen) her nach außen lesen, also:</p>
<pre><code class="language-cpp">void (*func)()
</code></pre>
<p>Der Name ist hier func, das * davor sagt dir schonmal, dass es ein Zeiger auf was auch immer (auf was steht weiter außen) ist. Dann haben die Postifx-Deklaratoren, also () und [] Vorrang vor allen anderen, weil wir außerhalb der Klammern ein () haben, ist es also ein Zeiger auf eine Funktion und deren Rückgabetyp ist void. Vielleicht noch ganz nützlich. <a href="http://www.newty.de/fpt/index.html" rel="nofollow">http://www.newty.de/fpt/index.html</a> (ehemals <a href="http://function-pointer.org" rel="nofollow">function-pointer.org</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637045</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Mon, 29 Dec 2008 21:11:01 GMT</pubDate></item><item><title><![CDATA[Reply to Funtkionen als Parameter on Mon, 29 Dec 2008 21:23:16 GMT]]></title><description><![CDATA[<p>ProgChild schrieb:</p>
<blockquote>
<p>Einfach eine Referenz auf ein Funktions-Objekt zu übergeben. Solange man keine Templates benutzt, was ich mal vorausgesetzt habe, gibt es keinen Typ für eine Referenz auf ein beliebiges Funktionsobjekt.</p>
</blockquote>
<p>Ah tut mir leid, ich hab nicht berücksichtigt, dass es sich um einen bestimmten Typ handelt. In diesem Falle stimme ich dir natürlich zu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637056</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 29 Dec 2008 21:23:16 GMT</pubDate></item></channel></rss>