<?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[Pointer auf Memberfunktion]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe folgendes Problem:</p>
<p>Ich habe in einer Klasse zwei public Funktionen:</p>
<pre><code class="language-cpp">void StartContainer_Xml( type_Occur wLevel
							, string *pxType
							, string *pxName 
							, type_Occur wSequenceNro ) ;

	void StartContainer_Plain( type_Occur wLevel
							 , string *pxType
							 , string *pxName 
							 , type_Occur wSequenceNro ) ;
</code></pre>
<p>und möchte jetzt im Constructor einen public Member-Pointer</p>
<pre><code class="language-cpp">void (*StartContainer)( type_Occur 
						  , string* 
						  , string*  
						  , type_Occur  ) ;
</code></pre>
<p>auf eine der beiden Funktionen setzen, so dass von aussen immer nur StartContainer(...) aufgerufen wird.</p>
<p>Ich hab's so versucht:</p>
<pre><code class="language-cpp">StartContainer = StartContainer_Xml ;
</code></pre>
<p>Ich benutze Visual C++ 6.0 und bekomme immer diese Fehlermeldung:</p>
<p>c:\smldataparser_src\out_put.cpp(328) : error C2440: '=' : cannot convert from 'void (__thiscall OUT_PUT::*)(unsign ...<br />
to 'void (__cdecl *)(unsigned int ...</p>
<p>Wie muss ich die Zuordnung machen, dass es geht?<br />
Schon mal jetzt: Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/210116/pointer-auf-memberfunktion</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 05:38:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/210116.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Apr 2008 13:04:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer auf Memberfunktion on Mon, 07 Apr 2008 13:04:17 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe folgendes Problem:</p>
<p>Ich habe in einer Klasse zwei public Funktionen:</p>
<pre><code class="language-cpp">void StartContainer_Xml( type_Occur wLevel
							, string *pxType
							, string *pxName 
							, type_Occur wSequenceNro ) ;

	void StartContainer_Plain( type_Occur wLevel
							 , string *pxType
							 , string *pxName 
							 , type_Occur wSequenceNro ) ;
</code></pre>
<p>und möchte jetzt im Constructor einen public Member-Pointer</p>
<pre><code class="language-cpp">void (*StartContainer)( type_Occur 
						  , string* 
						  , string*  
						  , type_Occur  ) ;
</code></pre>
<p>auf eine der beiden Funktionen setzen, so dass von aussen immer nur StartContainer(...) aufgerufen wird.</p>
<p>Ich hab's so versucht:</p>
<pre><code class="language-cpp">StartContainer = StartContainer_Xml ;
</code></pre>
<p>Ich benutze Visual C++ 6.0 und bekomme immer diese Fehlermeldung:</p>
<p>c:\smldataparser_src\out_put.cpp(328) : error C2440: '=' : cannot convert from 'void (__thiscall OUT_PUT::*)(unsign ...<br />
to 'void (__cdecl *)(unsigned int ...</p>
<p>Wie muss ich die Zuordnung machen, dass es geht?<br />
Schon mal jetzt: Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1487901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1487901</guid><dc:creator><![CDATA[MeinAlterEgo]]></dc:creator><pubDate>Mon, 07 Apr 2008 13:04:17 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Memberfunktion on Mon, 07 Apr 2008 13:26:55 GMT]]></title><description><![CDATA[<p>MeinAlterEgo schrieb:</p>
<blockquote>
<p>...<br />
Ich benutze Visual C++ 6.0 und bekomme immer diese Fehlermeldung:</p>
<p>c:\smldataparser_src\out_put.cpp(328) : error C2440: '=' : cannot convert from 'void (__thiscall OUT_PUT::*)(unsign ...<br />
to 'void (__cdecl *)(unsigned int ...<br />
...</p>
</blockquote>
<p>Recht hat er !! <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 />
Es liegt aber nicht an der Zuweisung, sondern an der Deklaration.<br />
Merke: &quot;Pointer auf Memberfunktionen&quot; sind was ganz anderes als &quot;Pointer auf Funktionen&quot;</p>
<p>MeinAlterEgo schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">void (*StartContainer)( type_Occur 
						  , string* 
						  , string*  
						  , type_Occur  ) ;
</code></pre>
<p>...</p>
</blockquote>
<p>Hier definierst Du eine Variable, die einen Funktionspointer aufnehmen kann.</p>
<p>Wenn es eine Memberfunktion der Klasse MyClass sein soll, müsste es lauten:</p>
<pre><code class="language-cpp">void (MyClass::*StartContainer)( type_Occur 
						  , string* 
						  , string*  
						  , type_Occur  ) ;
</code></pre>
<p>BTW:</p>
<blockquote>
<p>aussagekräftiger Threadtitel [X]<br />
aussagekräftiger Sourcecode-Abschnitt [X]<br />
Fehlermeldung angegeben [X]<br />
Compilerversion angegeben [X]</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> Sehr gut !! <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>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1487918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1487918</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 07 Apr 2008 13:26:55 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Memberfunktion on Mon, 07 Apr 2008 13:32:59 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Merke: &quot;Pointer auf Memberfunktionen&quot; sind was ganz anderes als &quot;Pointer auf Funktionen&quot;</p>
</blockquote>
<p>Ergänzend sei zu sagen, das du beim Aufruf über den Instanzzeiger (in diesen Fall wohl über this gegeben) gehen musst!<br />
Methodenzeiger haben effektiv 2 Teile: Instanzzeiger + Funktionszeiger (Ausnahme statische Methoden, die keine Instanz haben, und daher mit einfachen Funktionszeigern abbildbar sind).</p>
<p>Aber dazu wirst du mit ein wenig googlen oder Forumssuche genügend finden.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1487927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1487927</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 07 Apr 2008 13:32:59 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Memberfunktion on Mon, 07 Apr 2008 13:35:10 GMT]]></title><description><![CDATA[<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1487930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1487930</guid><dc:creator><![CDATA[MeinAlterEgo]]></dc:creator><pubDate>Mon, 07 Apr 2008 13:35:10 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Memberfunktion on Mon, 07 Apr 2008 13:57:36 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>...<br />
Ergänzend sei zu sagen, das du beim Aufruf über den Instanzzeiger (in diesen Fall wohl über this gegeben) gehen musst!<br />
Methodenzeiger haben effektiv 2 Teile: Instanzzeiger + Funktionszeiger ...</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Gut, dass Du das noch erwähnt hast !!</p>
<p>Sorry, war mir entschlüpft!</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1487948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1487948</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 07 Apr 2008 13:57:36 GMT</pubDate></item></channel></rss>