Was bewirkt "const" bei einer Methode hinter der Parameterliste?
-
Hi,
warum akzeptiert der Compiler ein "const" zwischen der Parameterliste und dem Programm-Abschnitt der Methode einer Klasse?
Also bei folgender Methode einer Klasse:
public: void TestMethode (int &x) const { x++; }Was bewirkt ein "const" dort?
Ich wollte eigentlich testen wie ein "const" beim Parameter dessen Veränderung verhindert und hatte es ausversehen an die falsche Stelle geschrieben. Zu meinem Erstaunen hat der Compiler es dann akzeptiert.
-
Das besagt das innerhalb dieser Funktion kein Member der Klasse verändert wird. Da du bei deinem Beispiel nur den Übergabeparameter veränderst ist das in Ordnung.
-
-
Es bewirkt, dass diese Funktion von konstanten Instanzen aufgerufen werden kann.
-
Dass du public: so hinschreibst, erweckt den anschein, du scheinst zu glauben, es funktioniere so wie in Java/C#/etc. Dies ist in C++ nicht der Fall.