<?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[Wie Funktion an Funktion weitergeben?]]></title><description><![CDATA[<p>Hallo,<br />
bin neu in Sachen C++ und habe gerade einen kleinen Integrator geschrieben der auch soweit funktioniert. Allerdings hat mein Programm zur Zeit noch folgende Struktur</p>
<pre><code>main
{
    Aufruf von Integrator und Weitergabe von Integralanfang, Integralende an    
    Integrator.
}

Integrator(Integralanfang, Integralende)
{
   Integrieren der Funktion func1 und Rückgabe des Ergebnisses.
}

func1(xwert)
{
   Rückgabe des Funktionswertes von func1 an der Stelle xwert.
}
</code></pre>
<p>Jetzt würde ich das ganze gerne so gestalten, dass ich die zu integrierende Funktion direkt an Integrator beim Aufruf als Argument übergeben kann, also</p>
<pre><code>Integrator (Integralanfang, Integralende, zu integrierende Funktion)
</code></pre>
<p>Damit hätte ich dann eine universell einsetzbare Integratorfunktion, die ich dann hoffentlich auch in zukünftigen Programmen nutzen kann und ich könnte auch mehrere Funktionen problemlos hintereinander integrieren.<br />
Da ich gerade erst mit c++ angefangen habe, gestaltet sich das ganze für mich noch etwas schwierig, ich wäre für Hilfe dankbar <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263013/wie-funktion-an-funktion-weitergeben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 05:55:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263013.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Mar 2010 21:04:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie Funktion an Funktion weitergeben? on Sun, 14 Mar 2010 21:04:09 GMT]]></title><description><![CDATA[<p>Hallo,<br />
bin neu in Sachen C++ und habe gerade einen kleinen Integrator geschrieben der auch soweit funktioniert. Allerdings hat mein Programm zur Zeit noch folgende Struktur</p>
<pre><code>main
{
    Aufruf von Integrator und Weitergabe von Integralanfang, Integralende an    
    Integrator.
}

Integrator(Integralanfang, Integralende)
{
   Integrieren der Funktion func1 und Rückgabe des Ergebnisses.
}

func1(xwert)
{
   Rückgabe des Funktionswertes von func1 an der Stelle xwert.
}
</code></pre>
<p>Jetzt würde ich das ganze gerne so gestalten, dass ich die zu integrierende Funktion direkt an Integrator beim Aufruf als Argument übergeben kann, also</p>
<pre><code>Integrator (Integralanfang, Integralende, zu integrierende Funktion)
</code></pre>
<p>Damit hätte ich dann eine universell einsetzbare Integratorfunktion, die ich dann hoffentlich auch in zukünftigen Programmen nutzen kann und ich könnte auch mehrere Funktionen problemlos hintereinander integrieren.<br />
Da ich gerade erst mit c++ angefangen habe, gestaltet sich das ganze für mich noch etwas schwierig, ich wäre für Hilfe dankbar <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869012</guid><dc:creator><![CDATA[kaesekuchen86]]></dc:creator><pubDate>Sun, 14 Mar 2010 21:04:09 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Funktion an Funktion weitergeben? on Sun, 14 Mar 2010 21:15:25 GMT]]></title><description><![CDATA[<p>Entweder als Funktionszeiger (Google wird dir dazu viel ausspucken), oder über templates.</p>
<p>Ich hoffe aber dir ist klar, dass man nicht einfach eine C++-Funktion integrieren kann.<br />
Denn eine C++-Funktion ist was ganz anderes als eine mathematische Funktion. Gilt nicht nur für C++ sondern für so ziemlich jede Programmiersprache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869017</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 14 Mar 2010 21:15:25 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Funktion an Funktion weitergeben? on Sun, 14 Mar 2010 21:23:24 GMT]]></title><description><![CDATA[<p>Du kannst Funktionszeiger einsetzen. Ich nehme mal an, die Funktion hat z.B. so eine Signatur:</p>
<pre><code class="language-cpp">float f(float x);
</code></pre>
<p>Dann deklarierst du einen Zeiger auf diesen Funktionstyp folgendermassen:</p>
<pre><code class="language-cpp">float (*fptr)(float) = &amp;f;
</code></pre>
<p>Nützlich ist auch <a href="http://www.newty.de/fpt/index.html" rel="nofollow">diese Seite</a>. Wenn du dich nicht auf globale Funktionen mit exakt gleicher Signatur beschränkten willst, kannst du verallgemeinerte Callable-Objekte mit <code>std::tr1::function</code> (oder <code>boost::function</code> ) realisieren. So könntest du zum Beispiel auch Memberfunktionen oder Funktoren (Funktionsobjekte) behandeln.</p>
<pre><code class="language-cpp">std::tr1::function&lt;float(float)&gt; callable = &amp;f;
</code></pre>
<p>Edit:</p>
<p>l'abra d'or schrieb:</p>
<blockquote>
<p>Ich hoffe aber dir ist klar, dass man nicht einfach eine C++-Funktion integrieren kann.</p>
</blockquote>
<p>Wahrscheinlich hat er ein diskretes Integral (Summe), schliesslich muss man für ein bestimmtes Integral nicht zwingend eine Stammfunktion berechnen. Aber ist nur so eine Vermutung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869018</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 14 Mar 2010 21:23:24 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Funktion an Funktion weitergeben? on Sun, 14 Mar 2010 21:22:54 GMT]]></title><description><![CDATA[<p>Danke!<br />
Wie würde ich dann denn die Funktion Integrator aufrufen?<br />
mit</p>
<pre><code>Integrator ( Integralanfang, Integralende, *fptr )
</code></pre>
<p>?</p>
<p>Gibt es auch eine Möglichkeit, das Ganze ohne Zeiger sondern mit Referenzen zu regeln? Ich hab mich mit Zeigern noch nicht so ganz angefreundet, Referenzen funktionieren schon etwas besser <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869020</guid><dc:creator><![CDATA[kaesekuchen86]]></dc:creator><pubDate>Sun, 14 Mar 2010 21:22:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Funktion an Funktion weitergeben? on Sun, 14 Mar 2010 21:27:20 GMT]]></title><description><![CDATA[<p>kaesekuchen86 schrieb:</p>
<blockquote>
<p>Wie würde ich dann denn die Funktion Integrator aufrufen?<br />
mit</p>
<pre><code>Integrator ( Integralanfang, Integralende, *fptr )
</code></pre>
</blockquote>
<p>Nein, einfach den Zeiger übergeben. Innerhalb der Funktion kannst du die ganz normale Aufrufsyntax verwenden. <code>typedef</code> kann dir die Syntax ein wenig vereinfachen.</p>
<p>Das steht übrigens alles im Link.</p>
<p>kaesekuchen86 schrieb:</p>
<blockquote>
<p>Ich hab mich mit Zeigern noch nicht so ganz angefreundet, Referenzen funktionieren schon etwas besser <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="🙂"
    /></p>
</blockquote>
<p>Du störst dich nicht im Ernst am Sternchen? Zeiger sind hier absolut kein Problem. Und du solltest dich lieber schnell mit ihnen anfreunden, sonst kommst du in C++ nicht weit. <a href="http://magazin.c-plusplus.net/artikel/Pointer%20in%20C%28PlusPlus%29" rel="nofollow">In diesem Artikel</a> findest du eine gute Einführung zu Zeigern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869021</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 14 Mar 2010 21:27:20 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Funktion an Funktion weitergeben? on Sun, 14 Mar 2010 21:38:58 GMT]]></title><description><![CDATA[<p>Vielen Dank, hat funktioniert! Super Forum, ging ja ruckzuck <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 />
Werd mich morgen mal in die Zeiger genauer einlesen, aber danke schonmal für die Links.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1869027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869027</guid><dc:creator><![CDATA[kaesekuchen86]]></dc:creator><pubDate>Sun, 14 Mar 2010 21:38:58 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Funktion an Funktion weitergeben? on Sun, 14 Mar 2010 23:10:20 GMT]]></title><description><![CDATA[<p>Am besten machst du das über ein Template, dann kann der Aufruf von f(i) geinlined werden. <code>function&lt;...&gt;</code> lohnt sich imho nur, wenn man die Funktion speichern will.</p>
<pre><code class="language-cpp">template&lt;typename Func&gt;
double integrate(Func f, double begin, double end) {
  // ...
  f(i);
  // ...
}

int main() {
  // ..
  integrate(func1, x, y);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1869051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1869051</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sun, 14 Mar 2010 23:10:20 GMT</pubDate></item></channel></rss>