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 24:
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.
 
<source lang=cpp>
ponto p1(1,5),p2(3,4), Soma;
 
Soma = p1 + p2;
</source>
 
Ao tentar compilar este trecho de código o compilador retornará um erro por não conhecer a maneira de como operar este tipo de dado. Como criamos o tipo de dado, precisamos definir como fazer a soma do mesmo. Podemos fazer a seguinte definição:
 
<source lang = cpp>
class ponto
{ int x,y;
public:
ponto(int a, int b)
{ x = a;
y = b;
}
ponto operator+(ponto p);
};
 
ponto ponto::operator+(ponto p)
{ int a,b;
a = x + p.x;
b = y + p.y;
return ponto(a,b);
}
</source>
 
{{AutoCat}}