¿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é?