Programar em C++/Operadores: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Linha 14:
Os operadores são tratados como funções, de forma a possibilitar a alteração do seu comportamento em determinados casos. Os operandos são tratados como argumentos de funções, enquanto que o resultado da operação é tratado como retorno da função do operador. Esta interface faz com que possamos programar o comportamento das operações e alterá-las quando nos seja conveniente.
 
=== Entendendo o operador ===
 
Basicamente, temos dois tipos de implementação para operadores, o tipo global e o tipo membro de classe. Os dois tipos são usados regularmente nas implementações mais comuns. Analisaremos o tipo global, uma vez que ainda não temos uma noção de classes suficiente para abordar o tipo membro de classe.
 
Digamos que temos uma estrutura '''ponto''', como definida abaixo:
 
<source lang='cpp'>
struct Ponto
{ int x;
int y;
};
</source>
 
Uma vez que tenhamos definido um ponto, nada mais natural que queiramos somar, subtrair, enfim operar, pontos diferentes de acordo com nossas necessidades. Para isso podemos criar operadores para fazer isso, da seguinte forma:
 
*Observamos a quantidade de parâmetros, o retorno e a forma de chamar o operador que queiramos definir e criamos uma função que execute a operação desejada;
*Inserimos o código da referida função dentro de uma chamada de operador, usando a palavra reservada '''operator''' seguida do operador que desejamos definir:
 
<source lang='cpp'>
Ponto operator+ ( Ponto a, Ponto b )
{ Ponto soma;
soma.x = a.x + b.x;
soma.y = a.y + b.y;
return soma;
}
</source>
{{Indentar/fim}}
[[Categoria:Programar em C++|{{SUBPAGENAME}}]]