Frage zu const?
-
Hallo,
ich habe folgenden Code:
const int getMethode(int figure_part)const;muss ich figure_part auch noch ein const setzen, damit figure_part nicht in dieser Methode verändert werden darf?
Also so:
const int getMethode(const int figure_part)const;Oder reicht das letzte const auch aus, da ja const left-binding ist!
mfg
-
Das letzte const besagt, dass die Methode ihr Objekt nicht verändert.
figure_part wird per value übergeben, eine Änderung daran wirkt sich nur innerhalb von getMethode aus.
Du kannst dir das const an der Stelle also sparen. Das gleiche gilt für den Rückgabewert, eine const-Rückgabe ist da nicht sinnvoll.int getMethode(int figure_part) const;
-
Ok stimmt! thx
-
Hallo,
darf man fragen, wofür man soetwas braucht:Ich habe eine Methode, die einen festen Parameter hat, diesen nicht bearbeiten darf. Könnte man den Rückgabetyp dann nicht gleich void machen oder gar die Mehtode weglassen??
Ich würde mich, freuen wenn Du mir kurz sagst, wofür man soetwas braucht.
Vielen Dank
lg, freakC++
-
ein etwas verunglückter operator+ könnte z.B. so eine Signatur haben. Oder eine Methode á la std::vector<>::at() Gibt viele Möglichkeiten.
-
freakC++ schrieb:
Ich habe eine Methode, die einen festen Parameter hat, diesen nicht bearbeiten darf. Könnte man den Rückgabetyp dann nicht gleich void machen oder gar die Mehtode weglassen??
Ich verstehe ehrlich gesagt nicht ganz, was du damit meinst. Was hat denn jetzt der Rückgabetyp mit dem Parameter zu tun? Und warum sollte man die Funktion weglassen können? - Die Funktion liest ja ev. etwas von dem Parameter und verändert die Klasse. Da braucht es ja dann auch keinen Rückgabewert..