Function-Pointer mit Referenz-Operator (Stroustrup)



  • Hi,

    in dem Buch "The C++ Programming Language" von Stroustrup gibt es in Kapitel 7
    bei den Exercises eine Frage, die ich nicht beantworten kann,
    vielleicht kann es ja einer von euch:

    What does the following mean? What would it be good for?

    typedef int (&rifii) (int, int);

    Gruß Roland


  • Mod

    Der Referenzdeklarator deklariert eine Referenz. Da der Rest der Deklaration eine Funktion spezifiziert, ist rifii somit eine Referenz auf eine Funktion. Solchen Referenzen sind im Prinzip nichts Besonderes, allerdings werden sie praktisch selten verwendet, da ihre Rolle durch Funktionszeiger in aller Regel genauso gut erfüllt werden kann (auch syntaktisch, wegen der impliziten Konvertierung von lvalue-Funktionsausdrücken in Funktionspointer und der Möglichkeit, den Funktionsaufrufoperator direkt mit Funktionszeigern zu verwenden). Das ist also ein Feature, das größtenteils der Orthogonalität dient. Benutze solche Referenzen so wie andere Referenzen auch.
    Beachte, dass es keine Referenzen auf Member gibt: zwar gibt es Zeiger auf Member aber das sind auch keine Zeiger (der Begriff ist einfach nicht besonders gut gelungen).


Log in to reply