Exercícios Resolvidos de Destruidores

Ver Teoria

Enunciado

Crie uma classe chamada E q u a c a o onde se o construtor receber três parâmetros a , b , c deve-se calcular a solução de uma equação de segundo grau. Crie um destrutor usa os parâmetros a e b para calcular e imprimir a solução para uma equação de primeiro grau quando a curva cruza o eixo x .

Para fins de teste utilize a = 1 , b = - 3 e c = 2 .

Passo 1

Vamos nessa galerinha. O que essa questão está pedindo é pra criarmos uma classe com um construtor e um destrutor, onde o construtor calcula uma equação de segundo grau e o destrutor calcula uma equação de segundo grau.

Vamos começar pelo cabeçalho. Para resolver equações de segundo grau vamos precisar incluir a < c m a t h >

Passo 2

Vamos começar a nossa classe chamada E q u a ç ã o . Pra começar vamos declarar os atributos da classe.

Todos os atributos estarão privados para garantir a integridade dos dados. Vamos precisar de três atributos a , b e c para receber os coeficientes das equações. Note que o atributo c só será utilizado quando a equação tiver grau 2.

Também vamos declarar dois atributos x 1 e x 2 que conterão os resultados da equação. Da mesma forma, o atributo x 2 só será usado nas equações de segundo grau

Passo 3

Vamos desenvolver um método c a l c _ g r a u 1 ( ) do tipo v o i d que calcula o valor de x quando a reta cruza o eixo das abscissas. Na linha 10 usamos um c o u t para exibir a equação para o usuário. Na linha 13 calculamos a raiz da equação e guardamos o resultado no atributo x 1 . Para concluir, na linha 14 usamos o c o u t para exibir o resultado pro usuário.

Vamos criar um segundo método c a l c _ g r a u 2 do tipo v o i d que calcula a equação de segundo grau. Na linha 19 utilizamos a instrução c o u t para exibir a equação para o usuário.

Na linha 22 calculamos o valor de Δ , note que declaramos uma nova variável dentro da função, pois ela só deve existir durante o cálculo.

Em seguida, usamos uma instrução i f - e l s e para determinar quando é impossível obter soluções reais ( Δ < 0 ) ou quando é possível obter soluções reais ( Δ ≥ 0 ) .

No primeiro caso, usamos o c o u t para informar o usuário. No segundo caso efetuamos os cálculos para encontrar as raízes, e exibimos os resultados.

Passo 4

Agora vamos pro coração da questão e desenvolver nossos métodos construtor e destruidor.

Primeiro de tudo, precisamos mudar o contexto da classe de privado para público utilizando o p u b l i c

O construtor vai receber três valores no momento que um objeto for instanciado, então vamos criar uma função sem tipo com o mesmo nome da classe, e que receba três parâmetros: A ,   B e C . Usaremos letras maiúsculas para não confundir com os atributos que definimos nos passos anteriores.

Em seguida, no corpo do construtor vamos utilizar os valores recebidos para setar os atributos da classe.

Com os valores dos atributos definidos, podemos chamar a função c a l c _ g r a u 2 para efetuar o calcula e exibir os resultados pro usuário.

Passo 5

Agora vamos criar o método destruidor. Para declarar o destruidor usamos o operador ~ e criamos uma função sem tipo, com o mesmo nome da classe, que não recebe nenhum parâmetro

No corpo de ~ E q u a c a o ( ) vamos imprimir uma mensagem informando que este é o destruidor, e em seguida vamos invocar o método c a l c _ g r a u 1 , para calcular uma equação de primeiro grau.

E isso conclui a nossa classe.

Passo 6

Antes de finalizar a questão, vamos executar os testes com os valores sugeridos pela questão:

Primeiro vamos criar um objeto chamado e q que recebe os valores 1 , - 3 e 2

O resultado é:

Resposta