Enunciado

Classe Complex. Escreva um programa que realize cada uma das tarefas:

a) Cria uma classe definida pelo usuário Complex que contém os dados-membro inteiros privados real e imaginary e declara as funções operador sobrecarregadas de inserção e extração de stream como friends da classe.

b) Define as funções operador de inserção e de extração de stream. A função operador de extração de stream deverá determinar se os dados inseridos são válidos e, caso não sejam, deve definir failbit para indicar a entrada imprópria. A entrada deverá ter a forma 3 + 8i

c) Os valores podem ser negativos ou positivos, e é possível que um dos dois valores não seja fornecido; nesse caso, o dado-membro apropriado deve ser definido em 0. O operador de inserção de stream não deve ser capaz de exibir o ponto se tiver ocorrido um erro de entrada. Para valores imaginários negativos, um sinal de subtração deverá sem impresso no lugar de um sinal de adição.

d) Escreve uma função main que testa a entrada e a saída da classe Complex definida pelo usuário, utilizando os operadores sobrecarregados de extração e de inserção de stream.

Passo 1

Beleza pessoal, prontos para mais uma resolução?! Espero que sim, abram seu compilador e vamos começar.

Atente ao fato de que a maior parte da resolução é feita por meio dos comentários do código, lá é onde iremos fazer a mágica acontecer de verdade.

Para criar a classe Complex definida pelo usuário, primeiro definiremos seu arquivo de cabeçalho Complex.h. Este contém a declaração da classe como dado em (a). Assim, teremos

Passo 2

Em seguida, definiremos a função do operador sobrecarregado de inserção e extração de fluxo no arquivo de origem Complex.cpp com base nos requisitos fornecidos em (b) e (c).

Primeiro, declare o arquivo de cabeçalho e o namespace padrão

Em seguida, defina a função de inserção de fluxo para verificar a validade dos dados de entrada. Assim, teremos que

Passo 3

Agora, defina a função de extração de fluxo para verificar a validade dos dados de entrada com base no formato fornecido. Observe que a entrada deve estar no formato 3 + 8i. Assim, teremos que

Infelizmente ainda não acabou meu bacano. Finalmente, vamos definir a função main no arquivo fonte main.cpp para testar a classe Complex conforme requerido em (d)

Depois de muito esforço, nós teremos as seguintes saídas do nosso código.

É isso pessoal, conseguimos depois 10 horas de resolução, brincadeiras à parte espero que tenham aprendido um pouco mais hoje, digo para que vocês tirem um tempo para entender o que foi feito no código aqui apresentado e tente criar o seu próprio. Abraços a todos!!!

Resposta

Ei, a resposta está no passo a passo :)