Zeiger auf eine Funktion einer Klasse
-
Ich habe folgende Klasse:
class CHallo { public: void XYZ() { // mache irgendwas } }; CHallo *Hallo = new CHallo; long Adr = (long)Hallo;
Durch "new" bekomme ich ja einen Zeiger auf die Klasse zurück, den ich in der "Adr" wunderbar als "long" abspeichern kann.
Wie kriege ich aber denn jetzt den Zeiger auf "XYZ" in einen "long" Wert?Gruß
Onkl Doc
-
#include <iostream> class Hallo { public: void XYZ() { // mache irgendwas } }; int main () { typedef void ( Hallo::*pf ) (); Hallo hallo; pf mfunc = &Hallo::XYZ; std::cout << &hallo << '\n' << &mfunc; std::cin.get (); return 0; };
ausgabe bei mingw 3.2
0x22ff67 0x22ff68
was auch immer
p.s.: es haette jede beliebige andere adresse sein koennen, nur so sieht man, wie der mingw die klasse im speicher anordnet.