Pointer auf Membermethoden
-
Hallo.
Ich weis schon aus C wie man mit Pointern auf statische Functionen handhabt.
Ich versuch jetzt in einer Klasse einen Pointer auf eine Member-Funktion zu erstellen.
ich zeige euch mal folgenden Quellqode:
#include <iostream> using namespace std; class TryFuncPoint { public: // attributes int (*pf)(int); // constructor TryFuncPoint(); // function int a(int i); int b(int i); }; TryFuncPoint::TryFuncPoint() { pf=b; } int TryFuncPoint::a(int i) { return i; } int TryFuncPoint::b(int i) { return i*2; } int main() { TryFuncPoint s; cout<<s.pf(3)<<endl; }
Ich bin schon draufgekommen, dass dieser Functionspointer nur auf Funktionen des Types int (int) zeigen kann. Ich brauche aber einen Funktionspointer der auf Funktionen des Typs int TryFuncPoint:: (int) zeigt.
Wie stelle ich das jetzt in C++ an?
Danke für eure Antworten.
-
Würde mich wundern, wenn das gehen würde, weil b nicht definiert, geschweige denn deklariert wurde. Was haben a() und b() mit der Klasse zu tun???
mfg
Glamdring
-
a und b sind doch member-Methoden dieser Klasse. Sie wurden in der Klasse definiert. Diese Klasse ist ausserdem nur eine kleine Testklasse um herauszufinden wie Pointer auf Membermethoden von Klassen implementiert werden falls dies überhaupt funktioniert.
-
hi
gib mal funktionszeiger in die suchfunktion oben ein und dann im bereich c++
immer wenn hume geantwortet hat, ist es interessant zum thema (bei anderen sicher auch
)
http://www.c-plusplus.net/forum/viewtopic.php?t=44400&highlight=funktionszeiger
zum bleistift.