In Numerical Recipes sie etwas verwenden, habe ich noch nie zuvor getan gesehen und nicht leicht Informationen finden konnte:Was passiert mit 'Funktionszeiger' oder 'Verweis auf Funktion' als Argument, um in C++ zu funktionieren?
void fun(std::vector<double> derivatives(const double, const std::vector<double> &)) { ...; derivatives(...); ...; }
Was ich bin zu raten, wird das Bestehen der Funktion als Referenz (das ist richtig)? Warum wäre dies vorteilhaft für die Verwendung eines Funktionszeigers? In welcher Situation wird jede Methode bevorzugt?
Ich habe ein zweites Problem: Wenn ich die Funktion zum ersten Mal aufrufen, hängt das Programm für einige Sekunden. Nun wird das Argument Funktion Ich gehe in, selbst, ruft eine andere Funktion aus einem Funktionszeiger heißt
vector<double>(*pfI)(const double) = NULL;
...
pfI = pointedToFun;
void argFun() { ...; deRefPointedFun = (*Theta::pfI)(t); deRefPointedFun(); }
Was ist der bessere Weg 2 Ebene von referenced/Zeigerfunktionen zu behandeln?
Als Ergänzung: Syntax in Frage scheint klarer als mit * -Syntax. Ich denke, das ist der Grund, warum sie es benutzt haben. –
In Ordnung - das macht mehr Sinn. Haben Sie eine Idee, warum das Programm hängt, bevor der Anruf des ersten auf Funktion hingewiesen hat (ich habe eine Spur gemacht und es wartet genau auf diesen Anruf)? – bias
Ich denke nicht, dass das Problem mit Zeigern auf Funktionen ist. Sie sollten hier minimalen Code posten, der das Problem zeigt, damit wir Ihnen helfen können. –