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 seinDanke
-
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 seinDanke
Dir sagt der Rueckgabetyp, ob der zurueckgegebene Wert vom Typ T, Zeiger auf T
oder eine Referenz auf ein T ist.mfg
v R