Avatar ·

O que significa const no final da declaração de uma função-membro de classe em C++?

Olá, colegas! Comecei a estudar C++ recentemente e me deparei com uma sintaxe que é completamente incompreensível para mim. Encontro no código declarações de métodos de classe onde, após a lista de parâmetros, vem a palavra-chave `const`. Por exemplo: ```cpp class MyClass { public: int getValue() const; // O que significa este const? void setValue(int v); }; ``` Eu entendo que `const` antes do tipo de uma variável a torna imutável (por exemplo, `const int x = 5;`). Mas o que `const` faz no final da declaração de uma função? Tentei escrever tal método, mas quando dentro dele tentei modificar um campo da classe, o compilador emitiu um erro. Por quê? Aqui está meu código que não compila: ```cpp class Counter { private: int count = 0; public: int getCount() const { count = 10; // Erro: não é possível modificar membro da classe em uma função const return count; } }; ``` Explique, por favor, para que serve esse `const`? Quando devo usá-lo e quando não? E como isso se relaciona com o funcionamento?