Que signifie const à la fin d'une déclaration de fonction membre d'une classe en C++ ?
Bonjour, collègues ! J'ai commencé à étudier le C++ il n'y a pas longtemps et j'ai rencontré une syntaxe qui m'est complètement incompréhensible. Je vois dans le code des déclarations de méthodes de classe où, après la liste des paramètres, se trouve le mot-clé `const`. Par exemple :
```cpp
class MyClass {
public:
int getValue() const; // Que signifie ce const ?
void setValue(int v);
};
```
Je comprends que `const` avant le type d'une variable la rend immuable (par exemple, `const int x = 5;`). Mais que fait `const` à la fin de la déclaration d'une fonction ? J'ai essayé d'écrire une telle méthode, mais quand j'ai tenté de modifier un champ de la classe à l'intérieur, le compilateur a généré une erreur. Pourquoi ?
Voici mon code qui ne compile pas :
```cpp
class Counter {
private:
int count = 0;
public:
int getCount() const {
count = 10; // Erreur : impossible de modifier un membre de la classe dans une fonction const
return count;
}
};
```
Expliquez-moi, s'il vous plaît, à quoi sert ce `const` ? Quand faut-il l'utiliser et quand non ? Et comment cela est-il lié au fonctionnement ?