001
20.02.2003, 16:56 Uhr
virtual
Sexiest Bit alive (Operator)
|
Wenn Die Funktion yyy nicht Statisch ist, dann muß ihr implizit der Pointer zur Klasse übergeben werden, dh Du müsstest an das myinit die Instanz mitgeben:
C++: |
#include <iostream>
class Klasse { public: void func1(char* state) { std::cout << "func1: this:" << this << ", state=" << state << std::endl; } void func2(char* state) { std::cout << "func2: this:" << this << ", state=" << state << std::endl; } };
typedef void (Klasse::*FunktionsTyp)(char*);
void myinit(Klasse* k, FunktionsTyp f) { char* str = "irgendwas"; (k->*f)(str); }
int main() { Klasse k1; Klasse k2; myinit(&k1, &Klasse::func2); myinit(&k2, &Klasse::func1); }
|
Oder habe ich Dich jetzt falsch verstanden? Ansonsten bietet die STL auch noch eigenige Möglichkeiten (guckmal in den Header <functional>, allerdings muß ich gleich weg, deshalb Beispiel nur auf Anfrage und damit später. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |