ExpertiDict

C++ · Essencial · Inglês · Técnico

const correctness

kɑnst kəˈrɛktnəssubstantivo

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).

Veja também

Todos os termos de C++