Ich benutze C++ (nicht C++ 11). Ich muss einen Zeiger auf eine Funktion innerhalb einer Klasse machen. Ich versuche Folgendes zu tun:Verweis auf nicht-statische Member-Funktion muss aufgerufen werden
void MyClass::buttonClickedEvent(int buttonId) {
// I need to have an access to all members of MyClass's class
}
void MyClass::setEvent() {
void (*func) (int);
func = buttonClickedEvent; // <-- Reference to non static member function must be called
}
setEvent();
Aber es gibt einen Fehler: "Verweis auf nicht statische Member-Funktion muss aufgerufen werden". Was muss ich tun, um einen Zeiger auf ein Mitglied von MyClass zu setzen?
Sie können keinen Funktionszeiger einer Elementfunktion zuweisen. Sie müssen entweder einen Zeiger auf Mitglied oder eine freie Funktion verwenden. – imreal
Was meinst du mit dem "Zeiger auf ein Mitglied"? Als "freie Funktion" meintest du eine Funktion außerhalb einer Klasse? Ja, ich weiß, dass es funktioniert, wenn ich "MyClass ::" Teil aus der Definition "void MyClass :: buttonClickedEvent ..." entfernen werde, aber ich muss Zugriff auf Mitglieder von MyClass innerhalb der Funktion "buttonClickedEvent" haben .. – JavaRunner