Que signifie const à la fin d'une déclaration de fonction membre d'une classe en C++ ?
Bonjour à tous ! J'ai commencé à apprendre le C++ après Python et Java, et je suis tombé sur une syntaxe que je ne comprends pas. Dans du code écrit par d'autres, je vois souvent le mot-clé `const` après la déclaration d'une fonction membre d'une classe. Par exemple :
```cpp
class MyClass {
public:
int getValue() const; // Ce const à la fin
void setValue(int v);
};
```
Je comprends que `const` avant une variable signifie que la variable ne peut pas être modifiée. Mais que signifie `const` *après* la liste des paramètres ? J'ai essayé de l'écrire sans — le compilateur ne se plaint pas. À quoi sert-il alors ? Est-ce que cela affecte la façon dont je peux appeler la fonction ? Puis-je le mettre pour n'importe quelle fonction ? Ou seulement pour les getters ?
J'ai écrit une classe simple :
```cpp
class Counter {
public:
Counter() : count(0) {}
int getCount() const { return count; } // Fonctionne
void increment() { count++; } // Fonctionne
private:
int count;
};
```
Mais quand j'ai essayé de faire `void increment() const { count++; }` — le compilateur a donné une erreur. Pourquoi ?