<?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[Zeiger auf Memberfunktion]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich bin langsam etwas am verzweifeln, weil ich mit dem Thema hier echt nicht fertig werde. Also ich habe eine Klasse Namens Class1 in deren Header steht folgendes:</p>
<pre><code class="language-cpp">int (Class::*pFunc)(std::vector&lt;CCube&gt;);
</code></pre>
<p>im Konstruktor steht dies:</p>
<pre><code class="language-cpp">pFunc = &amp;Class::Einsen;
</code></pre>
<p>Nun habe ich in einer anderen Klasse eine Instanz von Class1:</p>
<pre><code class="language-cpp">Class1 class;
</code></pre>
<p>Und nun versuche ich den Funktionszeiger zu nutzen:</p>
<pre><code class="language-cpp">int iResult = (class.pFunc)(m_vCubes);
</code></pre>
<p>Leider bekomme ich immer folgende Fehlermldung:</p>
<blockquote>
<p>error C2064: term does not evaluate to a function taking 1 arguments</p>
</blockquote>
<p>Mit der Lösung von Microsoft kann ich leider nichts anfangen. Ich will am Ende ein Array von Funktionszeiger auf die einzelnen Memebervariablen von Class1 haben.</p>
<p>Ich hoffe, dass ich mich verständlich ausgedrückt habe.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/132009/zeiger-auf-memberfunktion</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 10:46:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/132009.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Jan 2006 15:42:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sat, 07 Jan 2006 15:42:49 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich bin langsam etwas am verzweifeln, weil ich mit dem Thema hier echt nicht fertig werde. Also ich habe eine Klasse Namens Class1 in deren Header steht folgendes:</p>
<pre><code class="language-cpp">int (Class::*pFunc)(std::vector&lt;CCube&gt;);
</code></pre>
<p>im Konstruktor steht dies:</p>
<pre><code class="language-cpp">pFunc = &amp;Class::Einsen;
</code></pre>
<p>Nun habe ich in einer anderen Klasse eine Instanz von Class1:</p>
<pre><code class="language-cpp">Class1 class;
</code></pre>
<p>Und nun versuche ich den Funktionszeiger zu nutzen:</p>
<pre><code class="language-cpp">int iResult = (class.pFunc)(m_vCubes);
</code></pre>
<p>Leider bekomme ich immer folgende Fehlermldung:</p>
<blockquote>
<p>error C2064: term does not evaluate to a function taking 1 arguments</p>
</blockquote>
<p>Mit der Lösung von Microsoft kann ich leider nichts anfangen. Ich will am Ende ein Array von Funktionszeiger auf die einzelnen Memebervariablen von Class1 haben.</p>
<p>Ich hoffe, dass ich mich verständlich ausgedrückt habe.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959745</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 07 Jan 2006 15:42:49 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sat, 07 Jan 2006 15:48:34 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Abgesehen davon, dass du ein Schlüsselwort als Objektnamen verwendest, muss die Zeile</p>
<pre><code class="language-cpp">int iResult = (class.pFunc)(m_vCubes);
</code></pre>
<p>so aussehen:</p>
<pre><code class="language-cpp">int iResult = (class.*pFunc)(m_vCubes);
</code></pre>
<p>Gruß Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959751</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sat, 07 Jan 2006 15:48:34 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sat, 07 Jan 2006 15:48:35 GMT]]></title><description><![CDATA[<p>Die Instanz heißt doch nicht wirklich &quot;class&quot;? Wenn doch, dann liegt da schonmal der Hund begraben.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959752</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 07 Jan 2006 15:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sat, 07 Jan 2006 17:03:30 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Nein die Instanz heisst natürlich nicht &quot;class&quot;. Das war nur ein etwas blöd gewählter Alias von mir. Wir können Sie ab jetzt ja m_class nennen.</p>
<p>Der Compiler würde doch eine solche Namenswahl nicht erlauben, oder?</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959840</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 07 Jan 2006 17:03:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sat, 07 Jan 2006 17:20:44 GMT]]></title><description><![CDATA[<p>chrische5 schrieb:</p>
<blockquote>
<p>Hallo</p>
<p>Nein die Instanz heisst natürlich nicht &quot;class&quot;. Das war nur ein etwas blöd gewählter Alias von mir. Wir können Sie ab jetzt ja m_class nennen.</p>
</blockquote>
<p>Besteht das Problem denn immernoch? Wenn ja, poste doch mal einen Code-Snippet.</p>
<blockquote>
<p>Der Compiler würde doch eine solche Namenswahl nicht erlauben, oder?</p>
</blockquote>
<p>Nein.</p>
<p>Gruß Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959859</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sat, 07 Jan 2006 17:20:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sat, 07 Jan 2006 18:35:30 GMT]]></title><description><![CDATA[<p>Caipi schrieb:</p>
<blockquote>
<p>chrische5 schrieb:</p>
<blockquote>
<p>Hallo</p>
<p>Nein die Instanz heisst natürlich nicht &quot;class&quot;. Das war nur ein etwas blöd gewählter Alias von mir. Wir können Sie ab jetzt ja m_class nennen.</p>
</blockquote>
<p>Besteht das Problem denn immernoch? Wenn ja, poste doch mal einen Code-Snippet.</p>
</blockquote>
<p>[/quote]</p>
<p>Das Problem besteht immernoch. Ich habe doch eigentlich im ersten Post alles geschickt. Ich weiss nicht recht, was ich noch an Code posten soll.</p>
<p>chrische.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959909</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 07 Jan 2006 18:35:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sat, 07 Jan 2006 18:38:47 GMT]]></title><description><![CDATA[<p>Eventuell die Fehlermeldung, die _nach_ der von Caipi vorgeschlagenen Änderung kommt? <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/959912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959912</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Sat, 07 Jan 2006 18:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sun, 08 Jan 2006 12:56:42 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>LordJaxom schrieb:</p>
<blockquote>
<p>Eventuell die Fehlermeldung, die _nach_ der von Caipi vorgeschlagenen Änderung kommt? <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>
</blockquote>
<p>Ich hatte den einen Post übersehen.</p>
<p>Wenn ich die Zeile dementsprechend ändere (hatte ich vorher auch schon probiert) bekomme ich folgende Fehlermeldung:</p>
<blockquote>
<p>error C3861: 'pFunc': identifier not found</p>
</blockquote>
<p>Auch hier ist mir eigentlich klar, was diese Fehlermeldung bedeutet, aber im meinem Zusammenhang verstehe ich nicht, wie ich sie beheben soll.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/960497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960497</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 08 Jan 2006 12:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sun, 08 Jan 2006 13:07:20 GMT]]></title><description><![CDATA[<p><a href="http://www.function-pointer.org" rel="nofollow">http://www.function-pointer.org</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/960501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960501</guid><dc:creator><![CDATA[tipp]]></dc:creator><pubDate>Sun, 08 Jan 2006 13:07:20 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sun, 08 Jan 2006 13:29:03 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>tipp schrieb:</p>
<blockquote>
<p><a href="http://www.function-pointer.org" rel="nofollow">http://www.function-pointer.org</a></p>
</blockquote>
<p>Vielen Dank für diesen Link. Ohne den hätte ich es erst gar nichtso weit gebracht, wie jetzt schon bin. Ich bräuchte also etwas konkreter Hilfe.</p>
<p>Danke</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/960514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960514</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 08 Jan 2006 13:29:03 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sun, 08 Jan 2006 17:22:40 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Hat keiner von Euch eine Idee, was ich hier falsch mache?</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/960891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960891</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 08 Jan 2006 17:22:40 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Sun, 08 Jan 2006 19:02:26 GMT]]></title><description><![CDATA[<p>Hier sind wohl zwei Klassen im Spiel. Class und Class1.<br />
Class1::pFunc ist ein Zeiger auf eine Memberfunktion von Class.<br />
class.pFunc ist jetzt nur ein Zeiger ohne Instanz. class ist in Deinem ersten Post vom Type Class1. Dir fehlt also noch eine Instanz von Class, deren Funktion gerufen werden soll. BTW, die Benamsung macht es schwierig Deine Fragestellung zu verstehen.<br />
Siehe unten stehendes Beispiel (compiliert und getestet mit gcc 3.3.4):</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class A {
public:
   int f();
};

int A::f()
{
   return 1;
}

class B {
public:
   B();
   int (A::*pFunc)();

};

B::B()
{
   pFunc = &amp;A::f;
}

int main()
{
   B b;
   A a;

   std::cout &lt;&lt; (a.*b.pFunc)() &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/961079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/961079</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Sun, 08 Jan 2006 19:02:26 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Mon, 09 Jan 2006 21:11:54 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Das hat mir sehr geholfen.</p>
<p>Vielen Dank</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/962238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/962238</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 09 Jan 2006 21:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Tue, 10 Jan 2006 07:18:18 GMT]]></title><description><![CDATA[<p>Übrigens gibts dazu nen guten Artikel in der FAQ.<br />
Da steht auch noch viel anderes interessantes...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/962363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/962363</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Tue, 10 Jan 2006 07:18:18 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Memberfunktion on Tue, 10 Jan 2006 10:09:12 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>phlox81 schrieb:</p>
<blockquote>
<p>Übrigens gibts dazu nen guten Artikel in der FAQ.<br />
Da steht auch noch viel anderes interessantes...</p>
</blockquote>
<p>Mit dem Artikel hatte ich bereits gekämpft. Bezieht sich der zweite Satz deiner Aussage auf den Artikel oder auf die FAQ allgemein?</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/962483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/962483</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 10 Jan 2006 10:09:12 GMT</pubDate></item></channel></rss>