Referenzen
-
In meinem Buch habe ich etwas über Referenzen gelesen.
Soweit ich das verstanden habe sollte man sie statt Zeiger verwenden, wo man kann.Aber eine Frage bleibt noch offen ist das erlaubt?
void Setter ( const std::string& str ) { this->MyStr = str ; }Was passiert wenn
strstirbt? Lebt dannthis->MyStr?Dankende Grüße der Anfänger
-
Ist es nicht so, dass bei der Zuweisung eine Kopie erzeugt wird?

-
Das geht, denn in this->MyStr landet eine Kopie des str.
Wäre this->MyStr eine Referenz (und müßte daher in der Initialisiererliste initialisiert werden), hätte man da ein Problem.Referenzen Zeigern immer vorzuziehen, wo das möglich ist, ist keine absolute Glanzleistung.
-
volkard schrieb:
Referenzen Zeigern immer vorzuziehen, wo das möglich ist, ist keine absolute Glanzleistung.
Wie meinst du das genau? Imo sollte man schon, wenn es möglich ist Referenzen Zeigern vorziehen (wie z.B im obigen Fall). Oftmals braucht man die Möglichkeiten von Zeigern gar nicht und man begibt sich nur eher in Gefahr, wenn man Zeiger benutzt (von wegen 0 Zeiger).
Klar sollte man nicht um jeden Preis Referenzen Zeigern vorziehen, aber ich denke es ist schon eine gute Faustregel Referenzen Zeigern vorzuziehen.
-
Es ist mehr so eine Richtlinie, als eine Regel.
string& str=*new string("Alle Generalisierungen sind falsch.");