Ab wann lohnt es sich Referenzen zu nutzen?
-
Ab wann lohnt es sich Referenzen zu nutzen?
Ich sehe häufig dass Klassen/Arrays referenziert werden, aber nie Variablen.
Lohnt es sich erst ab Klassen/Arrays zu referenzieren oder ist der Aufwand zu groß für Variablen?
-
CarlossZantana schrieb:
Ab wann lohnt es sich Referenzen zu nutzen?
16:28 Uhr
Ich sehe häufig dass Klassen/Arrays referenziert werden, aber nie Variablen.
Lohnt es sich erst ab Klassen/Arrays zu referenzieren oder ist der Aufwand zu groß für Variablen?Klassen sind Variablen.
-
@KennerDerZeit
Anstatt auf meine Frage kindisch zu reagieren, könntest du sie mir auch beantworten.
-
CarlossZantana schrieb:
Ab wann lohnt es sich Referenzen zu nutzen?
Du meinst warscheinlich konstante Referenzen. Bei normalen Referenzen ist der Nutzen ja nicht der Geschwindigkeitsvorteil, sondern dass Änderungen am Parameter auch außerhalb der Funktion beibehalten werden. (Stichwort: Ausgabeparameter)
Konstante Referenzen bei Parametern lohnen sicht im Grunde bei allen Sachen außer nativen Datentypen. Wobei man hierbei auch die Threadsafety beachten muss.CarlossZantana schrieb:
Ich sehe häufig dass Klassen/Arrays referenziert werden, aber nie Variablen.
Lohnt es sich erst ab Klassen/Arrays zu referenzieren oder ist der Aufwand zu groß für Variablen?Du benutzt die falschen Wörter. Man referenziert keine Klasse sondern eine Klasseninstanz und mit variable meinst du warscheinlich nativen Datentypen. Bei Klassen "lohnt" es sich wie gesagt oft. Bei nativen Datentypen nicht, weil diese eh komplett ins Register gepackt werden.
-
KennerDerZeit schrieb:
Klassen sind Variablen.
Nein
-
CarlossZantana schrieb:
Anstatt auf meine Frage kindisch zu reagieren, könntest du sie mir auch beantworten.
Lerne zuerst, die Begriffe korrekt zu verwenden, so dass man dich versteht. Klassen und Arrays sind Typen, Variablen sind Instanzierungen von Typen. Referenzen können nicht auf Typen zeigen.
Falls du skalare Typen wie int und Klassen vergleichen möchtest: Eine übliche Faustregel ist, dass man Objekte von Klassen by reference übergibt, anstatt sie zu kopieren. Bei kleineren Typen wie int lohnt sich die Indirektion nicht, im Gegenteil.
sdfsdfsdfsdf schrieb:
Du meinst warscheinlich konstante Referenzen.
Und du meinst wahrscheinlich const-Referenzen. Alle Referenzen sind konstant (können nicht geändert werden).
<:xmas2:>
-
manni66 schrieb:
KennerDerZeit schrieb:
Klassen sind Variablen.
Nein
hatte keine lust zu mehr
-
CarlossZantana schrieb:
Ab wann lohnt es sich Referenzen zu nutzen?
Ich sehe häufig dass Klassen/Arrays referenziert werden, aber nie Variablen.
Lohnt es sich erst ab Klassen/Arrays zu referenzieren oder ist der Aufwand zu groß für Variablen?Bei den "alten" Typen wie int, double kannst du sie einfach als Wert übergeben, bei Instanzen von Klassen und Strukturen zahlt sich hingegen die Übergabe per const Referenz in der Regel aus!
Also bei int: void foo(int);
und bei std::string: void foo(const std::string&);Bei C Arrays übergibst du ja sowieso nur die Adresse des 0. Elements.
int array[10];
void foo(int*);
-
wobei der Aufruf beim Array foo(&array[0]), oder eben einfach nur foo(array) ist.
-
-
Danke!
-
Swordfish schrieb:
Guter Artikel. Aber bitte ganz lesen. Die Überschrift alleine ist nämlich reichlich irreführend.
-
hustbaer schrieb:
Die Überschrift alleine ist nämlich reichlich irreführend.
Ziemlich dämlich, nicht nur irreführend.