wie man in freie Funktion Methode aufrufen ?
-
Hallo alle,
zuerst danke alle für die Hilfe.

ich soll in eine Freie Funktion die classMethode aufrufen, wie funktioniert so was?
// test.h void *threadFunktion( void *arg ); class Test { public: ... void readAndStroeData(); private: ... }; // test.cpp void Test::readAndStroeData() { // Implementierung } void *threadFunktion( void *arg ) { // do was Test::readAndStroeData(); //???????????? funktioniert nicht :( :( return NULL; }
-
Entweder du musst die Methode fuer ein bestimmtes Objekt aufrufen, oder es muss einen static methode sein. Die Art wie du sie aufrufst, laesst eher auf letzteres schliessen, der Name readandstoredata klingt eher nach einer non-static methode, dann musst du halt das objekt bestimmen, fuer das sie aufgerufen werden soll.
-
Hi,
für welches Objekt soll denn die Memberfunktion aufgerufen werden ?
Falls der (void*)-Zeiger auf ein passendes Objekt zeigen soll: Casten.BTW: muss es wirklich "...Stroe...()" heißen ? (hast Du nun so oft getippt, dass ich es mal anmerken muss)
Gruß,
Simon2.
-
Simon2 schrieb:
BTW: muss es wirklich "...Stroe...()" heißen ? (hast Du nun so oft getippt, dass ich es mal anmerken muss)
Automatische Codevervollständigung

-
Du suchst Methodenzeiger:
class Test { void methode(int arg) { } }; void (Test::*methodenzeiger)(int); methodenzeiger = &Test::methode; Test obj; (obj.*methodenzeiger)();
-
Danke für alle Antwort.
Das Problem habe ich schon gelösen.

void *threadFunktion( void *arg ) { Test t; // do was t.readAndStoreData(); return NULL; }