<?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[Funktion über Parameter aufrufen]]></title><description><![CDATA[<p>Hi,<br />
Ich habe in meiner Klasse eine Funktion erstellt, die wenn sie die nötigen Daten hat eine auswert Funktion mit zwei Parametern aufruft.<br />
Der Nutzer soll nun aber die auswert Funktion selber machen, d.h. beim Aufrufen der Klassen Funktion muss er den Funktionsnamen seiner auswert Funktion übergeben, damit meine Klasse dieße Funktion später aufrufen kann.<br />
Wie mache ich soetwas? Den Funktionsnamen kann ich ja nicht als char Zeiger übergeben, da ich sie ja so nicht aufrufen kann.<br />
Bsp.:</p>
<pre><code class="language-cpp">int AUSWERTFUNKTION(char array[4096],int len) {
//.....
}

//Aufruf:
MEINEKLASSE::empfange(AUSWERTFUNKTION);
</code></pre>
<p>MFG ReduX :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201073/funktion-über-parameter-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 12:27:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201073.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 23 Dec 2007 21:15:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion über Parameter aufrufen on Sun, 23 Dec 2007 21:15:35 GMT]]></title><description><![CDATA[<p>Hi,<br />
Ich habe in meiner Klasse eine Funktion erstellt, die wenn sie die nötigen Daten hat eine auswert Funktion mit zwei Parametern aufruft.<br />
Der Nutzer soll nun aber die auswert Funktion selber machen, d.h. beim Aufrufen der Klassen Funktion muss er den Funktionsnamen seiner auswert Funktion übergeben, damit meine Klasse dieße Funktion später aufrufen kann.<br />
Wie mache ich soetwas? Den Funktionsnamen kann ich ja nicht als char Zeiger übergeben, da ich sie ja so nicht aufrufen kann.<br />
Bsp.:</p>
<pre><code class="language-cpp">int AUSWERTFUNKTION(char array[4096],int len) {
//.....
}

//Aufruf:
MEINEKLASSE::empfange(AUSWERTFUNKTION);
</code></pre>
<p>MFG ReduX :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425375</guid><dc:creator><![CDATA[ReduX]]></dc:creator><pubDate>Sun, 23 Dec 2007 21:15:35 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion über Parameter aufrufen on Sun, 23 Dec 2007 21:46:14 GMT]]></title><description><![CDATA[<p>Dazu gibts Funktionszeiger <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>
<pre><code class="language-cpp">class VerarbeitungsKlasse
{
    public:
        // Hier definierst du einen Typ mit Namen &quot;AuswertFunktion&quot; als Funktionszeiger auf eine Methode mit
        //   Signatur &quot;void NAME( char*, int )&quot;
        typedef void(*AuswertFunktion)(char*,int);

        void DoSomething( AuswertFunktion func )
        {
            ...
            func( data, 123 );
        }
};

void MeinePersoenlicheAuswertFunktion( char* array, int len )
{
    ...
}

VerarbeitungsKlasse work;
work.DoSomething( &amp;MeinePersoenlicheAuswertFunktion ); // Bin mir nicht mehr sicher, _ob_ hier das '&amp;' hinmuss
</code></pre>
<p><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/1425394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425394</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sun, 23 Dec 2007 21:46:14 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion über Parameter aufrufen on Sun, 23 Dec 2007 21:52:05 GMT]]></title><description><![CDATA[<p>du verwendest funktionsobjekte.</p>
<pre><code class="language-cpp">#include &lt;tr1/functional&gt;
using namespace std::tr1;
using namespace std::tr1::placeholders;

//übernimm eine function, die nichts (void) zurückgibt und einen int und ein
//double erwaret:
void funny (function&lt;void(int,double)&gt; fun)
{
   fun (42, 2.3); //ruf die funktion auf
}

void bar (int, double)
{
}

//...
funny (bar);

//und das ganze noch mit memberfunktionen:
struct X
{
   void foo (int, double) {}
};

//...
X x;
funny (bind(&amp;X::foo, &amp;x, _1, _2)); //wir konstruieren ein neues funktionsobjekt,
//denn X::foo hat eigentlich die signatur void (X*, int, double) - das X* für this
//_1 und _2 sind platzhalter.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1425396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425396</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Sun, 23 Dec 2007 21:52:05 GMT</pubDate></item></channel></rss>