C++:How to pass-Referenz-zu-Funktion in eine andere Funktion?
Habe ich gelesen, über Funktionszeiger und über die Verwendung als Parameter für andere Funktionen. Meine Frage ist, wie würde übergeben Sie eine Funktion, die durch Verweis ohne mit Zeigern? Ich habe versucht, die Antwort zu finden auf dem Internet, aber ich habe nicht gefunden, eine gute Antwort. Ich weiß, dass Sie übergeben können, die auf Variablen Bezug nehmen, wie diese: void funct(int& anInt);
. Wie würden Sie tun, etwas ähnliches, aber statt einer Referenz auf eine variable, die eine Referenz auf eine Funktion der parameter? Auch, wie würden Sie einen Verweis auf die Funktion in einer Funktion Körper?
- Hinweis: Sie können sich nicht über Funktionen. Sie können nur Referenzen oder Zeiger auf Funktionen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Cheers & hth.,
sometype &ref = *ptr;
die Adresse im Zeiger werden einfach kopiert und in die Adresse in der Referenz, die möglicherweise nicht gültig ist, oder null. Man könnte sagen, dass die Aussage oben ist nicht definiertes Verhalten, wennptr
ist nicht gültig, oder null, aber es wird keine Anzeige von dieser zur compile - oder Laufzeit -, so ist es immer noch der Programmierer, um sicherzustellen, dass es gültig ist und nicht-null, gleich wie wenn Sie einen Zeiger. Also ich sagen, es gibt kein Unterschied zu den Programmierer.sometype &ref = *ptr;
situation wird nicht kommen, bis, oft, da haben Sie Referenzen überall. Auch gibt es einen semantischen Unterschied zwischen der Annahme einer Referenz und einem Zeiger in eine API. Die Annahme einer Referenz eindeutig, dass die Funktion nicht aufgerufen werden kann, mit null. Wenn es eine Referenz ist, dann ist es die Aufgabe des Aufrufers, wenn es ein Zeiger ist, dann ist es der angerufene ist.