Sobrecarregue os operadores de inserção e de extração para realizar e com tipo abaixo.
Passo 1
Vamos lá pessoal. A questão pede pra gente sobrecarregar os operadores e .
Então, pra começar, vamos escrever a classe que a questão deu pra gente:
Olha que legal, a classe já possui um protótipo chamado , então podemos desenvolver esse método e depois a gente usa na hora de sobrecarregar o operador .
Passo 2
Vamos começar desenvolvendo o método .
Este método é uma função-membro da nossa classe, então vamos usar o antes do nome do método.
Essa função apenas vai imprimir os valores contidos nos componentes e da função.
Passo 3
Show, agora vamos pra parte principal da questão, a sobrecarga do operador
Lembre-se que o é um objeto da classe , e teremos que levar isso em consideração na hora de sobrecarregar o nosso operador.
A forma padrão para sobrecarregar o operador para uma classe qualquer é a seguinte
Já o corpo da sobrecarga é composto por uma sucessão de usos do . Porém, nós já fizemos o método , então podemos só invocar este método
Um detalhe é que o parâmetro pode ter qualquer nome, o importante é que seja retornado no final da sobrecarga.
Passo 4
O próximo passo é sobrecarregar o operador , mas não esqueça que o é um objeto da classe .
Então, para sobrecarregar o operador para a classe devemos fazer assim:
Importante: não esqueça de passar o objeto por referência usando o . Passar por referência é necessário para poder alterar o objeto e inserir o valor no objeto.
No corpo da sobrecarga nós utilizamos o objeto para inserir os valores digitados nos atributos adequados da classe.
O nome do parâmetro também pode ser modificado, o importante é que esse parâmetro seja retornado no fim da sobrecarga.
Passo 5
A classe está construída e as sobrecargas estão feitas. Agora vamos testar!
Dentro da função vamos instanciar um objeto da classe
Como os operadores estão sobrecarregados, podemos pedir pro usuário inserir dois valores, e usar o diretamente para armazenar os valores no objeto , como fazemos na linha 32.
E como os operadores estão sobrecarregados também podemos usar o para imprimir diretamente o objeto , como na linha 33.
O resultado é: