Verwenden einer Mitgliedsfunktion der C-Klasse als C-Rückruffunktion
Es ist möglich, eine Mitgliedsfunktion der C-Klasse als C-Rückruffunktion zu registrieren , aber es müssen bestimmte Anforderungen erfüllt werden.
F1: Erstens ist es möglich, eine Mitgliedsfunktion der C-Klasse zu registrieren, wie ich es versuche zu tun und wenn ja, wie?
A1: Ja, es ist möglich, eine Mitgliedsfunktion der C-Klasse als Rückruffunktion zu registrieren, wenn die Funktion als statische Funktion deklariert ist. Statische Memberfunktionen haben im Gegensatz zu nicht statischen Memberfunktionen keinen impliziten „this“-Zeiger als erstes Argument. Dadurch können sie mit der Signatur einer C-Callback-Funktion kompatibel sein.
F2: Gibt es eine alternative/bessere Möglichkeit, dieses Problem anzugehen?
A2: Hier sind einige alternative Optionen:
Beispiel für die Verwendung einer statischen Member-Funktion:
class A { public: A() { register_with_library(&A::e); } ~A() {} static int e(int *k, int *j) { return 0; } };
Das obige ist der detaillierte Inhalt vonKann eine Member-Funktion der C-Klasse als C-Callback-Funktion verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!