Template-Codestück
-
hallo,
template<typename Class> MenuEntryMethod<Class>* makeMenuEntry(Class* p, void (Class::*method)(), std::string const& name) { return new MenuEntryMethod<Class>(p, method, name); }Kann mir mal jemand erklären, was das
void (Class::*method)()sein soll? Ich habe sowas noch nie gesehen

-
Ehm Methodenzeiger ... dafür brauchst du ein Objekt und halt einen Zeiger auf die Funktion ... kennst ja sicherlich Funktionzeiger, oder? Sowas wie eine WindowProc in der WinAPI
Das ist sozusagen die C++-Version dafür ... guck mal auf www.function-pointer.org ...void (Class::*method)()ist ein Methodenzeiger auf eine Memberfunktion die als Rückgabewert und Parameter void hat. Nicht const. z.B. wäre folgendes möglich:
class bar { public: void foo(); } template<class T> void call(T const & obj, void (T::*func_ptr)()) { (obj.*func_ptr)(); } int main() { bar inst; call<bar>(inst, &inst::foo); }...