C++ · Essencial · Inglês · Técnico
const correctness
Prática de marcar com const tudo que não deve mudar: parâmetros, métodos e variáveis. O compilador então recusa modificações acidentais e a interface documenta a intenção.
Onde usar
Num code review, é comum pedir que um getter seja const para poder ser chamado em objetos const. A falta disso se propaga como erros de compilação em cadeia.
Em código
class Conta {
int saldo_ = 0;
public:
int saldo() const { return saldo_; }
};
void mostra(const Conta& c) { c.saldo(); }Exemplos
Please mark this getter as const, otherwise I can't call it on a const reference.
Marque esse getter como const; senão não dá para chamá-lo em uma referência const.
Const correctness paid off: the compiler caught an accidental write.
A const correctness valeu a pena: o compilador pegou uma escrita acidental.
Cuidado
Não confunda const int* (dado constante) com int* const (ponteiro constante).