Avatar ·

¿Qué significa const al final de la declaración de una función miembro de una clase en C++?

¡Hola a todos! Empecé a estudiar C++ después de Python y Java, y me encontré con una sintaxis que no entiendo. En código ajeno, veo a menudo que después de la declaración de una función miembro de una clase aparece la palabra clave `const`. Por ejemplo: ```cpp class MyClass { public: int getValue() const; // Este const al final void setValue(int v); }; ``` Entiendo que `const` antes de una variable significa que la variable no se puede modificar. Pero, ¿qué significa `const` *después* de la lista de parámetros? Intenté escribirlo sin él — el compilador no se queja. Entonces, ¿para qué sirve? ¿Afecta esto a cómo puedo llamar a la función? ¿Se puede poner para cualquier función? ¿O solo para getters? Escribí una clase simple: ```cpp class Counter { public: Counter() : count(0) {} int getCount() const { return count; } // Funciona void increment() { count++; } // Funciona private: int count; }; ``` Pero cuando intenté hacer `void increment() const { count++; }` — el compilador dio un error. ¿Por qué?