Exercícios Resolvidos de Construtores

Ver Teoria

Enunciado

Um aluno de engenharia está fazendo um programa em C++ para auxiliá-lo nas aulas de Movimento Retilíneo Uniforme (MRU) em uma dimensão.

Ele criou a seguinte classe:

Ele cometeu alguns erros. Encontre os erros e corrija.

Passo 1

Vamos nessa galera. Essa é uma daquelas questões de analisar códigos, então vamos olhar linha por linha, e encontrar os erros no código.

A chave aqui é perceber o comportamento do programa, e tentar entender como cada linha de código vai se comportar. Então let’s go!

Da linha 01 a 03 é apenas o básico de um programa C++, e está tudo certo por aqui.

Na linha 04 iniciamos a declaração da nossa classe chamada M R U .

Nas linhas 07 e 08 são declarados três variáveis em contexto p r i v a t e para representar a velocidade inicial, e as posições inicial e final. Por enquanto não há nenhum erro aqui.

Em um contexto p u b l i c na linha 12 criamos uma função chamada p o s i c a o _ f i n a l , essa função recebe um parâmetro t e m p o e utiliza os atributos x _ 0 e v _ 0 para calcular o valor do atributo x _ f . Aqui também não encontramos nenhum erro.

Passo 2

Agora vamos pra linha 17 dar uma boa olhada na nossa classe construtora.

O primeiro erro está na linha 17 perceba que o tipo v o i d foi associado a função construtora, porém as funções construtoras não possuem tipo.

O segundo erro também está na linha 17 pois o nome da função está errado, o nome do construtor deve ser igual ao nome da classe.

Seguindo para a linha 19 nos deparamos com uma instrução r e t u r n , e sabemos que as funções construtoras não utilizam esse comando.

Mas olhando a função como um todo, existe um erro ainda mais sério. Um dos principais objetivos da classe construtora é inicializar os atributos da classe, porém, o construtor que foi exibido não atribui os parâmetros aos atributos.

Passo 3

Vamos corrigir os defeitos que encontramos no nosso construtor. Pra começar, a gente deve remover o tipo e renomear o método na linha 17, e apagar o comando de retorno na linha 19:

Em seguida, vamos utilizar esse método para inicializar os atributos x _ 0 e v _ 0 existentes dentro da classe. Pra isso, basta a gente usar o operador = para guardar o valor dos parâmetros nos atributos.

E esse é o nosso método construtor corrigido.

Resposta