Callbacks in C++?
-
Hallo!
Wie implementiert man Callbacks in C++? Sind da Funktionszeiger ok oder nimmt man da besser was anderes?
-
Boost Function ist für sowas total knorke:
http://www.boost.org/doc/libs/1_46_1/doc/html/function/tutorial.html#id1274613
-
Ich will auf keinen Fall boost (oder irgend eine andere Lib benutzen).
Ist nicht die einfachste Lösung einfach eine abstrakte Basisklasse?
class Event { public: virtual void processEvent() = 0; }; class MyEvent : public Event { ... } MyEvent e; foo->registerEvent(e); ... foo->fireEvent(); // macht e->processEvent()Ist das ok?
-
Nimm halt std::tr1::function (Boost.Function wurde praktisch 1:1 in TR1 übernommen).
-
CallOfDuty schrieb:
Ich will auf keinen Fall boost (oder irgend eine andere Lib benutzen).
Warum?
Ist nicht die einfachste Lösung einfach eine abstrakte Basisklasse?
Das würde ich jetzt nicht als callback bezeichnen. Aber wenn es dir reicht: klar warum nicht!