<?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[Problem mit Funktionspointern]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe folgende Funktionsdeklaration:</p>
<pre><code class="language-cpp">int search( int (*err_func) (integer *m_ptr, integer  *n_ptr, doublereal *params, doublereal *err, integer *iflag), 
		integer mode=1 );
</code></pre>
<p>In meiner Klasse habe ich dann eine entsprechende Funktion:</p>
<pre><code class="language-cpp">int levenbergMarquardtErrorFunc(integer *m_ptr, integer *n_ptr, doublereal *params, doublereal *err, integer *iflag);
</code></pre>
<p>Diese versuche ich nun an search zu übergeben:</p>
<pre><code class="language-cpp">nlOpt.search(&amp;ViewpointTransform::levenbergMarquardtErrorFunc);
</code></pre>
<p>Leider mit folgendem Ergebnis:</p>
<pre><code>cannot convert parameter 1 from 'int (__thiscall ViewpointTransform::* )(integer *,integer *,doublereal *,doublereal *,integer *)' to 'int (__cdecl *)(integer *,integer *,doublereal *,doublereal *,integer *)'
</code></pre>
<p>Wenn ich reine C-Funktionen übergebe, dann gehts. Warum klappt das mit Memberfunktionen nicht?</p>
<p>Danke für Eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/278650/problem-mit-funktionspointern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 05:14:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278650.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Dec 2010 11:04:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Funktionspointern on Fri, 10 Dec 2010 11:04:39 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe folgende Funktionsdeklaration:</p>
<pre><code class="language-cpp">int search( int (*err_func) (integer *m_ptr, integer  *n_ptr, doublereal *params, doublereal *err, integer *iflag), 
		integer mode=1 );
</code></pre>
<p>In meiner Klasse habe ich dann eine entsprechende Funktion:</p>
<pre><code class="language-cpp">int levenbergMarquardtErrorFunc(integer *m_ptr, integer *n_ptr, doublereal *params, doublereal *err, integer *iflag);
</code></pre>
<p>Diese versuche ich nun an search zu übergeben:</p>
<pre><code class="language-cpp">nlOpt.search(&amp;ViewpointTransform::levenbergMarquardtErrorFunc);
</code></pre>
<p>Leider mit folgendem Ergebnis:</p>
<pre><code>cannot convert parameter 1 from 'int (__thiscall ViewpointTransform::* )(integer *,integer *,doublereal *,doublereal *,integer *)' to 'int (__cdecl *)(integer *,integer *,doublereal *,doublereal *,integer *)'
</code></pre>
<p>Wenn ich reine C-Funktionen übergebe, dann gehts. Warum klappt das mit Memberfunktionen nicht?</p>
<p>Danke für Eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1992496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1992496</guid><dc:creator><![CDATA[curry-king]]></dc:creator><pubDate>Fri, 10 Dec 2010 11:04:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Funktionspointern on Fri, 10 Dec 2010 11:23:35 GMT]]></title><description><![CDATA[<p>(Nichtstatische) Memberfunktionen beziehen sich immer auf ein konkretes Objekt und müssen daher anders behandelt werden als gewöhnliche Funktionen. Wenn du dieses Problem nicht selber gesehen hast, solltest du dich fragen, ob<br />
levenbergMarquardtErrorFunc überhaupt eine gewöhnliche Memberfunktion deiner Klasse sein sollte. Alles was dein Herz zu dem Thema begehrt, findest du hier:<br />
<a href="http://www.parashift.com/c++-faq-lite/pointers-to-members.html" rel="nofollow">http://www.parashift.com/c++-faq-lite/pointers-to-members.html</a></p>
<p>P.S.: Warum so viel gepointere in deinem Programm?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1992502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1992502</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 10 Dec 2010 11:23:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Funktionspointern on Fri, 10 Dec 2010 11:24:38 GMT]]></title><description><![CDATA[<p>Weil Memberfunction Pointer und normale Function Pointer unterschiedlich sind. Ein Memberfunction Pointer braucht ein Objekt um gerufen werden zu können.</p>
<p><a href="http://www.goingware.com/tips/member-pointers.html#not-addresses" rel="nofollow">Siehe hier</a></p>
<p>Edit: zu spät...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1992503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1992503</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Fri, 10 Dec 2010 11:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Funktionspointern on Fri, 10 Dec 2010 11:56:11 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>P.S.: Warum so viel gepointere in deinem Programm?</p>
</blockquote>
<p>Die search-Funktion ist Teil eines Pakets zur Optimierung und so vom Prof. vorgegeben.</p>
<p>Danke für Eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1992531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1992531</guid><dc:creator><![CDATA[curry-king]]></dc:creator><pubDate>Fri, 10 Dec 2010 11:56:11 GMT</pubDate></item></channel></rss>