antred schrieb:Versteh mich nicht falsch, ich habe gar nichts gegen const. Wo es Sinn macht (Referenz/Pointer-Argumente), sollte man es IMMER einsetzen, aber für einen Übergabeparameter wie long long firstNumber sehe ich diesen Sinn nur begrenzt. Überleg dir mal, was dieses const eigentlich aussagt:
Das ist dem Aufrufer aber vollkommen Wurscht, da die Funktion sowieso nur eine Kopie des übergebenen Werts in die Finger bekommt. Den einzigen Nutzen, den das const hier hat, ist eben zu erzwingen, dass du in deinem Funktionsrumpf den Wert des Parameters nicht verändern kannst ... was man ja auch, wie ich schon gesagt habe, nicht tun sollte. Aber nur deswegen die Schnittstelle der Funktion mit einem für den Aufrufer absolut nutzlosen const künstlich aufzublähen, halte ich nicht für guten Stil.
du hast damit durch aus recht. nur der sinn von const bei funktionsparametern (die kopien darstellen) ist ein ganz anderer:
es ist sinnvoll, wenn mehr als ein entwickler an dem code arbeitet. denn dann, kann man sich einfach darauf verlassen, dass man über die parametervariable immer den der funktion original übergebenen wert bekommt und nicht einen zwischenzeitlich veränderten.
das kann nämlich sehr leicht übersehen werden, wenn die variable innerhalb der funktionen abgeändert wurde.
das habe ich auch erst in meiner firma hier gelernt, da sich diese problematik für mich bisher nie gestellt hat. natürlich passiert so etwas auch ohne const (oder in java final) nicht all zu oft, aber es hilft. die erfahrung wurde hier schon zu oft gemacht und ich kann dies bestätigen.