Na declaração das classes Ajuda e Teste abaixo, utilizando a...
Na declaração das classes Ajuda e Teste abaixo, utilizando a sintaxe de uma linguagem orientada a objeto denominada C++,
class Ajuda { char j; public: Ajuda (double); ~Ajuda(); }; class Test : public Ajuda {_____char c; int x, k; public: Teste (char, int, int); Teste (char, double); ~Teste(); }; |
uma declaração correta de um objeto é:
- Gabarito Comentado (1)
- Aulas (1)
- Comentários (0)
- Estatísticas
- Cadernos
- Criar anotações
- Notificar Erro
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - Teste objeto(2, 1, 1);
Vamos entender o porquê dessa alternativa ser a correta e analisar as outras opções.
Enunciado:
Foi fornecida a declaração das classes Ajuda e Teste, utilizando a linguagem C++ orientada a objetos. A classe Ajuda possui um construtor que recebe um double e um destrutor, enquanto a classe Teste, que herda de Ajuda, possui dois construtores: um que recebe um char e dois inteiros, e outro que recebe um char e um double, além de seu próprio destrutor.
Análise das Alternativas:
Alternativa A: Ajuda objeto(2, 1, 1);
Essa declaração está incorreta porque a classe Ajuda possui um construtor que aceita apenas um argumento do tipo double. A tentativa de passar três argumentos não é válida.
Alternativa B: Ajuda objeto = ~Teste();
Essa declaração está incorreta por várias razões. Primeiro, o símbolo ~ é utilizado para indicar um destrutor em C++, e não faz sentido nessa sintaxe. Além disso, não há compatibilidade direta para atribuir um destrutor dessa forma.
Alternativa C: Ajuda objeto(2, 2.1);
Incorreta. Novamente, o construtor da classe Ajuda aceita apenas um argumento do tipo double, e aqui estão sendo passados dois argumentos, o que não é permitido.
Alternativa D: Teste objeto(2.1);
Essa alternativa também está incorreta. A classe Teste possui dois construtores: um que aceita três argumentos (um char e dois inteiros) e outro que aceita dois (um char e um double). A passagem de um único argumento double não é compatível com nenhum dos construtores listados.
Alternativa E: Teste objeto(2, 1, 1);
Essa é a alternativa correta. O construtor da classe Teste que recebe um char e dois inteiros é compatível com os argumentos fornecidos. Aqui, o primeiro argumento é tratado como um char devido à conversão implícita, e os dois inteiros são aceitos conforme esperado.
Espero que essa explicação tenha ajudado a esclarecer o raciocínio necessário para resolver a questão. Entender a assinatura dos construtores e a sintaxe da linguagem C++ é fundamental para acertar esse tipo de pergunta.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo