Logo Passei Direto
Buscar

Filosofia

UNINASSAU
Em um jogo de estratégia, existe uma classe base UnidadeMilitar com um método III atacar(). As classes derivadas, como Arqueiro e Cavaleiro, possuem implementações distintas para este método. Para gerenciar todas as unidades em uma única lista de ponteiros UnidadeMilitar*, é crucial que, ao chamar o método atacar() através de um ponteiro da classe base, o comportamento específico da classe derivada seja executado. Para que o polimorfismo em tempo de execução funcione corretamente, permitindo que a função da classe derivada seja chamada através de um ponteiro da classe base, o que é necessário fazer na declaração da função na classe mãe? A Declarar a função como virtual, para indicar que ela pode ser sobrescrita por classes derivadas. B Declarar a função como friend, para permitir o acesso de outras classes. C Declarar a função como private, para restringir seu acesso. D Declarar a função como static, para que ela pertença à classe e não ao objeto. E Declarar a função como const, para garantir que ela não altere O estado do objeto.
User badge image
Robson Fernando

mês passado

Respostas

User badge image

Ed Verified user icon

mês passado

Vamos analisar cada alternativa: A) Declarar a função como virtual, para indicar que ela pode ser sobrescrita por classes derivadas. Verdadeiro. Para que o polimorfismo funcione corretamente em C++, a função deve ser declarada como virtual na classe base. B) Declarar a função como friend, para permitir o acesso de outras classes. Falso. A palavra-chave "friend" não tem relação com polimorfismo e não é necessária para que uma função seja sobrescrita. C) Declarar a função como private, para restringir seu acesso. Falso. Se a função for privada, não poderá ser acessada pelas classes derivadas, o que impede a sobrescrita. D) Declarar a função como static, para que ela pertença à classe e não ao objeto. Falso. Funções estáticas não podem ser sobrescritas e não são adequadas para polimorfismo. E) Declarar a função como const, para garantir que ela não altere o estado do objeto. Falso. A palavra-chave "const" é usada para indicar que a função não altera o estado do objeto, mas não está relacionada ao polimorfismo. Portanto, a única alternativa correta que permite o polimorfismo em tempo de execução é: A) Declarar a função como virtual, para indicar que ela pode ser sobrescrita por classes derivadas.

Essa resposta te ajudou?

0
Dislike0
details

Libere essa resposta sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina