C++ · Essencial · Português · Técnico
sobrecarga de operador
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