Rückgabe von Funktionenpointer
-
Hallo,
also mein Problem ist, dass ich nicht weiß wie ich eine Funktion definieren muss, die einen Funktionenpointer zurückgeben soll. Ich weiß wie ich Funktionenpointer als Parameter übergeben kann, aber wie ich sie als Rückgabewert verwenden kann hab ich leider nicht gefunden. Kann mir da jemand helfen?
Vielen Dank schonmal im Voraus
-
Wenn du das als übergabe hinkriegst, kannst du das auch als Rückgabewert hinkriegen. Ist im Prinzip ja dasselbe.
Ansonsten zeig mal, wie du es probiert hast.
-
Funktionen als Parameter
void foo(int (*funcptr)(/*parameter*/));als Rückgabewert hab ich es u.a. so probiert
int *foo() (/*parameter*/);geht aber auch nicht da meckert er 'function return function' und ich soll doch stattdessen eine functionpointer zurückgeben, wobei ich halt dachte, dass ich das schon tue.
-
typedefs helfen bei Funktionspointern enorm.
int foo (){return 0;} typedef int (* fptr ) (); fptr bar (){return &foo;}
-
... sind aber nicht nötig.
float foo (double) { return 0.0f; } float (*bar (void)) (double) { return foo; }
-
audacia schrieb:
... sind aber nicht nötig.
Habe ich auch nicht behauptet. Ich sagte hilfreich. Und lesbarer ist es auch um einges.
-
sehr komisch, mit den zusätzlichen klammer geht es tatsächlich
int (*foo()) (/*parameter*/);danke!
-
wo kann man eigendlcih mal nachlesen wie man gut mit functionpoitnern arbeiten kann?
hab 2 bücher und in dem einen wird das als zu hohes wissen angesehen(ist en anfägner buch) und in dem adneren wird das nur ganz kurz erwähnt...
-
Wenn du sowieso schon leichte probleme mit der syntax von funktionspointer hasst, dabei Fragen im C++ forum stellst (man also von ausgehen kann dass du nen c++ compiler hasst) ... weiso nutzt du dann eigentlich keine Polymorphie ?
Funktionspointer wuerd ich nur nutzen, wenn ich auf C festgenagelt bin ...Ciao ...