Programar em C++/Sobrecarga de operadores: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
Linha 6:
 
Ao definir novas funções para os operadores padões, na verdade não substituimos a sua função, apenas adicionamos mais uma função ao mesmo operador. Esta operação é chamada de sobrecarga de operador. O nome parece um pouco fora do comum, mas apenas reflete o comportamento da linguagem quando esta lida com a definição de vários tratamentos para o mesmo identificador, que neste caso é o símbolo do operador. Portanto, sobrecarga de operador é a definição de novas tarefas para o mesmo operador.
 
== Definindo novas operações ==
 
Digamos que temos uma classe chamada '''ponto''', que define dois interos para um plano hipoteticamente definido. Este par de inteiros poderá representar uma coordenada neste plano formado por pontos espaçados um do outro. Sob estas condições, cada objeto desta classe será uma coordenada neste plano:
 
<source lang=cpp>
class ponto
{ int x,y;
public:
ponto(int a, int b)
{ x = a;
y = b;
}
};
</source>
 
Se quisermos operar estes objetos não teremos como fazê-lo, pois não há meios de operar os objetos do tipo ''ponto''. Nenhuma operação é possivel, pois a linguagem não define como operá-los. Cabe ao programador dizer ao compilador como ele deve efetuar a operação do novo tipo criado.