ExpertiDict

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

sobrecarga de operador

ˌsobɾeˈkaɾɡɐ dʒi opeɾaˈdoɾsubstantivo

Recurso que dá significado próprio a operadores como +, == e << para tipos do usuário, escrevendo funções chamadas operator+, operator== e assim por diante.

Onde usar

Usada em tipos matemáticos, strings e para imprimir objetos com cout. Em review, o cuidado é manter a semântica esperada e não surpreender quem lê.

Em código

struct V { int x, y; };
V operator+(V a, V b) {
  return {a.x + b.x, a.y + b.y};
}
V c = V{1, 2} + V{3, 4};  // {4, 6}

Exemplos

Sobrecarreguei o operador de soma para o tipo Vetor.

Esse operator== devia comparar todos os campos, não só o id.

Cuidado

Não dá para criar operadores novos nem mudar a precedência; só os operadores existentes podem ser sobrecarregados.

Sinônimos

operator overloading

Veja também

Todos os termos de C++