non-static member
-
ich lese mich gerade in Funktionszeiger ein und habe mal zum verständnis ein kleines beispiel gemacht. allerdings funktioniert das nicht
class MyClass { public: void MyFunction ( int _x, int _y ) { this->X = _x ; this->Y = _y ; } private: int X ; int Y ; }; typedef void (*Interface)(int, int) ; class OtherClass { public: void Set_Function ( Interface func ) { this->myfunc = func ; } private: Interface myfunc ; }; int main () { OtherClass A ; A.Set_Function(MyClass::MyFunction) ; }error: invalid use of non-static member function ‘void MyClass::MyFunction(int, int)’Kann mir jemand helfen und erklären was ich falsch mache?

-
-
Danke für den link. würde mein vorhaben auch mit den std::tr1::function funktionieren? Hab davon was gelesen aber finde keine passende doku dazu

-
Ja, aber du musst den bind-Adapter nutzen:
#include <functional> int f(std::tr1::function<int (const char*)> func) { return func("Hallo, Welt"); } class test { public: int fun(const char* c) { return c[0]; } }; int main() { test t; f(std::tr1::bind(&test::fun, t, std::tr1::placeholders::_1)); }
-
Vielen dank ad acta!
Hast du auch eine Referenz dazu? finde nur das
-
boost::bind ist ca. das selbe.
http://www.boost.org/doc/libs/1_42_0/libs/bind/bind.html
-
ah okay danke nochmal!
std::tr1 hat also keine eigene referenz?
-
Meyers hat die Proposals mal alle verlinkt:
http://www.aristeia.com/EC3E/TR1_info.html