<?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[Function-Pointer als return-argument]]></title><description><![CDATA[<p>Hallo,<br />
Ich habe folgendes Problem: 2 Funktionen sollen definiert werden:<br />
Funktion 1 hat als input-argument ein 'char', output-argument ist ein 'float'.<br />
Funktion 2 hat als input-argument ein 'int', als output-argument soll ein pointer zu einer funktion mit argumenten des typs 'Funktion 1' geliefert werden.</p>
<p>Mein Header sieht demnach so aus:</p>
<pre><code>float funct1(char);
void* funct2(int);
</code></pre>
<p>Mein cpp-file ist folgendermaßen gestaltet:</p>
<pre><code>#include&lt;iostream&gt;;
#include &quot;header.h&quot;;

using namespace std;

int main(){
	float (*(*fp) (int))(char);
	fp=funct2;
}
</code></pre>
<p>Nun soll der pointer fp auf die Funktion 2 zeigen.<br />
Leider beschwert sich der Compiler über die Inkompatibilität des deklarierten Void-pointers für funktion 2.<br />
Gibt es irgendeine Möglichkeit, einen allgemeinen Ausdruck für einen Funktions-pointer als return-argument für Funktion 2 im header-file zu schreiben?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/244924/function-pointer-als-return-argument</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 02:11:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/244924.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Jul 2009 18:34:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Function-Pointer als return-argument on Tue, 07 Jul 2009 18:34:31 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Ich habe folgendes Problem: 2 Funktionen sollen definiert werden:<br />
Funktion 1 hat als input-argument ein 'char', output-argument ist ein 'float'.<br />
Funktion 2 hat als input-argument ein 'int', als output-argument soll ein pointer zu einer funktion mit argumenten des typs 'Funktion 1' geliefert werden.</p>
<p>Mein Header sieht demnach so aus:</p>
<pre><code>float funct1(char);
void* funct2(int);
</code></pre>
<p>Mein cpp-file ist folgendermaßen gestaltet:</p>
<pre><code>#include&lt;iostream&gt;;
#include &quot;header.h&quot;;

using namespace std;

int main(){
	float (*(*fp) (int))(char);
	fp=funct2;
}
</code></pre>
<p>Nun soll der pointer fp auf die Funktion 2 zeigen.<br />
Leider beschwert sich der Compiler über die Inkompatibilität des deklarierten Void-pointers für funktion 2.<br />
Gibt es irgendeine Möglichkeit, einen allgemeinen Ausdruck für einen Funktions-pointer als return-argument für Funktion 2 im header-file zu schreiben?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738777</guid><dc:creator><![CDATA[Martin2000]]></dc:creator><pubDate>Tue, 07 Jul 2009 18:34:31 GMT</pubDate></item><item><title><![CDATA[Reply to Function-Pointer als return-argument on Tue, 07 Jul 2009 18:51:20 GMT]]></title><description><![CDATA[<p>Martin2000 schrieb:</p>
<blockquote>
<p>Gibt es irgendeine Möglichkeit, einen allgemeinen Ausdruck für einen Funktions-pointer als return-argument für Funktion 2 im header-file zu schreiben?</p>
</blockquote>
<p>Nein, gibt es nicht. Wenn das so wäre, würde der Funktions-Pointer doch seine Funktion verlieren: anzuzeigen, was die Funktion zurückgibt und was sie als Parameter erwartet. Wozu brauchst du dann noch einen Funktions-Pointer? Dann kannst du ja gleich auf <code>void (*) (void)</code> casten und auf gut Glück aufrufen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738788</guid><dc:creator><![CDATA[devkid]]></dc:creator><pubDate>Tue, 07 Jul 2009 18:51:20 GMT</pubDate></item><item><title><![CDATA[Reply to Function-Pointer als return-argument on Tue, 07 Jul 2009 18:59:32 GMT]]></title><description><![CDATA[<p>Martin2000 schrieb:</p>
<blockquote>
<p>Ich habe folgendes Problem: 2 Funktionen sollen definiert werden:<br />
Funktion 1 hat als input-argument ein 'char', output-argument ist ein 'float'.<br />
Funktion 2 hat als input-argument ein 'int', als output-argument soll ein pointer zu einer funktion mit argumenten des typs 'Funktion 1' geliefert werden.</p>
</blockquote>
<p>Es heißt &quot;Rückgabewert&quot; und nicht &quot;output-argument&quot;.</p>
<p>Also</p>
<pre><code class="language-cpp">typedef float func1_t(char);  

  float function1(char);
  func1_t* function2(int);
</code></pre>
<p>Martin2000 schrieb:</p>
<blockquote>
<p>Mein Header sieht demnach so aus:</p>
<pre><code>float funct1(char);
void* funct2(int);
</code></pre>
</blockquote>
<p>Diese <code>funct2</code> macht aber nicht das, was Du wolltest. <code>void</code> hat hier schonmal gar nichts zu suchen.</p>
<p>Martin2000 schrieb:</p>
<blockquote>
<p>Nun soll der pointer fp auf die Funktion 2 zeigen.<br />
Leider beschwert sich der Compiler über die Inkompatibilität des deklarierten Void-pointers für funktion 2.</p>
</blockquote>
<p>Zu Recht. Du musst Dich schon entscheiden, was Du willst. Wenn Du die Deklaration von <code>funct2</code> beibehalten willst, musst Du den Funktionszeiger auch anders definieren:</p>
<pre><code class="language-cpp">void*(*fp)(int) = funct2;  // Wenn ich mich nicht irre
</code></pre>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738792</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Tue, 07 Jul 2009 18:59:32 GMT</pubDate></item></channel></rss>