Als «function-pointers» getaggte Fragen

Ein Funktionszeiger ist ein Zeiger auf eine Funktion, die in einer Variablen gespeichert werden kann. Es ermöglicht eine Laufzeitauswahl, welche Funktion ausgeführt werden soll.

11
Wie funktionieren Funktionszeiger in C?
Ich hatte in letzter Zeit einige Erfahrungen mit Funktionszeigern in C. Ausgehend von der Tradition, Ihre eigenen Fragen zu beantworten, habe ich beschlossen, eine kleine Zusammenfassung der Grundlagen für diejenigen zu erstellen, die sich schnell mit dem Thema befassen möchten.
1233 c  function-pointers 


21
Was ist der nächste Ersatz für einen Funktionszeiger in Java?
Ich habe eine Methode, die ungefähr zehn Codezeilen umfasst. Ich möchte mehr Methoden erstellen, die genau dasselbe tun, mit Ausnahme einer kleinen Berechnung, die eine Codezeile ändert. Dies ist eine perfekte Anwendung zum Übergeben eines Funktionszeigers, um diese eine Zeile zu ersetzen, aber Java verfügt nicht über Funktionszeiger. Was ist …

8
Ein Tupel „entpacken“, um einen passenden Funktionszeiger aufzurufen
Ich versuche, in einer std::tuplevariierenden Anzahl von Werten zu speichern , die später als Argumente für einen Aufruf eines Funktionszeigers verwendet werden, der den gespeicherten Typen entspricht. Ich habe ein vereinfachtes Beispiel erstellt, das das Problem zeigt, das ich nur schwer lösen kann: #include <iostream> #include <tuple> void f(int a, …

7
Grundlegendes zu Typedefs für Funktionszeiger in C.
Ich war immer ein bisschen ratlos, wenn ich den Code anderer Leute las, der typedefs für Zeiger auf Funktionen mit Argumenten hatte. Ich erinnere mich, dass ich eine Weile gebraucht habe, um zu einer solchen Definition zu gelangen, während ich versucht habe, einen numerischen Algorithmus zu verstehen, der vor einiger …

3
Warum funktionieren Funktionszeigerdefinitionen mit einer beliebigen Anzahl von kaufmännischen Und-Zeichen '&' oder Sternchen '*'?
Warum arbeiten die folgenden? void foo() { cout << "Foo to you too!\n"; }; int main() { void (*p1_foo)() = foo; void (*p2_foo)() = *foo; void (*p3_foo)() = &foo; void (*p4_foo)() = *&foo; void (*p5_foo)() = &*foo; void (*p6_foo)() = **foo; void (*p7_foo)() = **********************foo; (*p1_foo)(); (*p2_foo)(); (*p3_foo)(); (*p4_foo)(); (*p5_foo)(); …
216 c++  c  function-pointers 

8
Übergabe der Erfassung von Lambda als Funktionszeiger
Ist es möglich, eine Lambda-Funktion als Funktionszeiger zu übergeben? Wenn ja, muss ich etwas falsch machen, weil ich einen Kompilierungsfehler erhalte. Betrachten Sie das folgende Beispiel using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn _dec; }; int main() { int x = 5; …


17
Rückruffunktionen in Java
Gibt es eine Möglichkeit, eine Rückruffunktion in einer Java-Methode zu übergeben? Das Verhalten, das ich nachahmen möchte, ist ein .NET-Delegat, der an eine Funktion übergeben wird. Ich habe Leute gesehen, die vorgeschlagen haben, ein separates Objekt zu erstellen, aber das scheint übertrieben, aber ich bin mir bewusst, dass manchmal Overkill …

6
Verwenden generischer std :: function-Objekte mit Elementfunktionen in einer Klasse
Für eine Klasse möchte ich einige Funktionszeiger auf Mitgliedsfunktionen derselben Klasse in einem Objekt mapspeichern std::function. Aber ich versage gleich zu Beginn mit diesem Code: class Foo { public: void doSomething() {} void bindFunction() { // ERROR std::function<void(void)> f = &Foo::doSomething; } }; Ich erhalte error C2064: term does not …



11
Funktionszeiger in Java
Dies mag allgemein und trivial sein, aber ich habe anscheinend Probleme, eine konkrete Antwort zu finden. In C # gibt es ein Konzept von Delegaten, das sich stark auf die Idee von Funktionszeigern aus C ++ bezieht. Gibt es eine ähnliche Funktionalität in Java? Was ist der beste Weg, da …



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.