D
@wob sagte in C++ Lernen - Verständnisfragen:
Generell würde ich dir noch raten, möglichst viel const zu verwenden. Wenn sich Variablen nicht ändern, ist es einfacher zu sehen, wofür die Variablen stehen. Vor allem nicht: "hier in Zeile 1 steht x für diese Daten, in Zeile 10 steht x für diese anderen Daten".
Durch const vermeidest du das. Da du eine const-Variable aber nicht ändern kannst, funktioniert logischerweise auch der call-by-reference nicht zum Ändern der Variable. Du müsstest eine const& als Parameter nehmen und könntest somit die Variable in der Funktion auch nicht ändern. Wenn du aber stattdessen einfach eine neuen Wert zurückgibst, der sich aus altem const-Wert + Änderung ergibt, dann hast du dieses Problem nicht und dein Programm wird tendenziell klarer.
Natürlich muss man schauen, ob das so immer sinnvoll ist. Wenn du große Objekte hast, ist es möglicherweise ineffizient, immer zu kopieren und eine direkte Änderung kann dann sinnvoller sein.
Jedenfalls: sofern nichts dagegen spricht, bevorzuge const-Variablen und return-Werte anstelle von Reference-Parametern ohne const.
Danke nochmal für den Hinweis, ich versuch das mit den const Variablen bereits zu beachten. Gerade Vectoren die viele Strings enthalten (z.b. eingelesene Dateien) habe ich fast immer als const referenz aufgerufen um mir das Kopieren zu sparen - sofern nur gelesen werden sollte. By Value habe ich bisher sogut wie nie genutzt. Jedoch gerade der letzte Punkt war auch aus den letzten Antworten der entscheidene Hinweis, für meine nächsten Projekte - jetzt wo ich das mit dem Return verstanden habe