funktionen mit * oder & ?



  • Hi,

    ich versteh etwas nicht
    wenn ich z.B. eine Klasse T habe und eine Funktion eine T Instanz zurückgeben soll, warum dann einige Funktionen, wie normale Funktionen geschrieben werden, also
    "T Funktion();"
    und Andere so
    "T * Funktion();"
    oder
    "T & Funktion();"

    Woram liegt das 😕
    ich dachte so signalisiert man ,das eine Variable ein Pointer oder eine Referenz ist, aber eine Funktion kann das beides ja nicht sein

    Danke



  • Der Rückgabewert ist entweder T, T* oder T&.



  • Danke!



  • Tagchen,

    Tobi882 schrieb:

    Hi,

    ich versteh etwas nicht
    wenn ich z.B. eine Klasse T habe und eine Funktion eine T Instanz zurückgeben soll, warum dann einige Funktionen, wie normale Funktionen geschrieben werden, also
    "T Funktion();"

    Diese Variante sollte klar sein, hier will ich, dass ich eine Kopie
    zurueck bekomme, mit der ich weiterarbeite.

    und Andere so
    "T * Funktion();"

    Einen Zeiger setzt man i.d.R. dann ein, wenn der Rueckgabewert auch NULL oder
    0 sein kann. Man kann also dann spaeter pruefen, ob eine Variable 'x' einen
    gueltigen Wert besitzt.

    oder
    "T & Funktion();"

    Anders als bei Zeiger, muss eine Referenz ein gueltiges Objekt referenzieren.
    Dir sagt diese Funktion also schon auf den ersten Blick, dass der zurueck-
    gegebene Wert gueltig sein muss, du also z. B. nicht auf NULL oder 0 pruefen
    musst.

    Woram liegt das 😕
    ich dachte so signalisiert man ,das eine Variable ein Pointer oder eine Referenz ist, aber eine Funktion kann das beides ja nicht sein

    Danke

    Dir sagt der Rueckgabetyp, ob der zurueckgegebene Wert vom Typ T, Zeiger auf T
    oder eine Referenz auf ein T ist.

    mfg
    v R


Anmelden zum Antworten