O que significa const no final da declaração de uma função em C++?
Olá a todos! Comecei a estudar C++ e me deparei com uma sintaxe que me confundiu. Em algumas declarações de métodos de classe, vejo a palavra-chave `const` não antes do tipo de retorno, mas no final, após a lista de parâmetros. Por exemplo:
```cpp
class MyClass {
public:
int getValue() const; // <-- este const no final
};
```
Eu entendo que `const` antes de uma variável a torna imutável, mas o que significa `const` no final de uma função? Isso está relacionado ao fato de que a função não pode modificar dados? Ou isso afeta quais métodos podem ser chamados para objetos constantes?
Meu exemplo específico: tenho uma classe que armazena algum valor e quero escrever um método para obtê-lo. Se eu não colocar `const` no final, não consigo chamar esse método para um objeto constante. Por que isso acontece? E o que exatamente esse `const` proíbe?
Ficarei grato por uma explicação detalhada com exemplos, porque nos livros didáticos isso é explicado de forma meio confusa.
<<>>