Funktionspointer auf Member einer Klasse zuordnen
-
Hy Leute,
ich habe einen Pointer auf eine Klasse:
MyClass *pClass;dann habe ich einen Funktionspointer auf eine Memberfunktion:
void (*fkt_ptr)(void);Das Problem besteht darin, dass ich nicht weiß ob der Funktionspointer zu meiner Klasse gehört:
pClass->fkt_ptr(…) // Sorry für die Verwirrung -> dies ist nicht der Aufruf des Fktptr!!gibt es also eine Möglichkeit zu testen der Funktionspointer zu der Klasse gehört??
Besten Dank
Code404
-
g.r.a.n.d.p.a schrieb:
dann habe ich einen Funktionspointer auf eine Memberfunktion:
void (*fkt_ptr)(void);Bezweifle ich, denn ein Zeiger auf eine Methode sähe so aus:
void (MyClass::*fkt_ptr)()
-
ist static

-
g.r.a.n.d.p.a schrieb:
ist static

was?
-
... die Memberfunktion!!! -> Damit reicht:
void (*fkt_ptr)(void);
-
Dann brauchst beim Aufruf auch kein this-Objekt übergeben.
-
das tue ich auch nicht!
Leider habe ich aber nur diese 2 Variablen. An der Klasse kann ich nichts ändern!
Gibt es also eine Möglichkeit zu testen ob der Funktionspointer zu dieser Klasse gehört?
-
was mir so spontan einfallen würde:
du könntest die klasse des zeigers ermitteln, meinetwegen mit dynamic_casts und dann alle (adressen der) statischen methoden der klasse mit dem pointer vergleichen.
also ungefähr so:if (dynamic_cast<Klasse1*>(this_pointer)) { if (methoden_pointer == Klasse1::methode1) { passt! } }und so weiter halt.
nur so ganz spontan...
vielleicht gibt es ja was besseres, würde mich auch interessieren.jenz