Funktionszeiger
-
Hallo
Ich wollte eine Funktion über Funktionszeiger aufrufen.
Ich kann es zwar kompilieren, aber beim aufruf stürzt das programm ab!
weiß wer warum?#include <iostream> using namespace std; int& ifunc( int &i ); int main() { int _20 = 20; int omg = ifunc( _20 ); cout << omg << endl; int& ( *pf ) ( int &i ); cout << pf( _20 ); system("PAUSE"); return 0; } int& ifunc( int &i ) { int op1 = 20; int erg = op1 + i; return erg; }
-
noch zur erklärung der zeiger zeigt auf ifunc!
-
Wie wäre es, wenn du dem Zeiger noch eine Funktion zuweisen würdest?
EDIT:
Im übrigen ganz leicht zu erkennen, wenn man die Fehlermeldung liest, die kommt.
Und du gibt eine Referenz auf ein lokales Objekt zurück. Böse.
-
danke, das mit dem lokalen Objekt hast du mir ja schon erklärt,
da habe ich jetzt eine Kopie zurückgegeben.
Wie weiße ich den Zeiger auf die Funktion zu?
-
Mit einer Zuweisung vielleicht? ^^
int& ( *pf ) ( int &i ) = &ifunc;Grüssli
-
MaRkus1 schrieb:
danke, das mit dem lokalen Objekt hast du mir ja schon erklärt,
da habe ich jetzt eine Kopie zurückgegeben.
Wie weiße ich den Zeiger auf die Funktion zu?Das war nicht ich. Das war dann wohl Dravere.
