Na declaração das classes Ajuda e Teste abaixo, utilizando a...

Próximas questões
Com base no mesmo assunto
Q2954425 Arquitetura de Software

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 é:

Alternativas

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