Utilizando a linguagem de programação C++, foi definida uma...

Próximas questões
Com base no mesmo assunto
Q1393657 Programação
Utilizando a linguagem de programação C++, foi definida uma classe Empregado em empregado.hpp. Nessa definição, é encontrada a seguinte linha de comando:
virtualfloatcalculaSalario () ;

Assinale a alternativa que apresenta a propriedade da orientação a objetos implementada utilizando esse comando e o que essa linha de comando indica.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C

A linha de comando virtual float calculaSalario(); dentro da definição de uma classe em C++ está aplicando o conceito de polimorfismo, que é um dos quatro pilares fundamentais da programação orientada a objetos (POO). O polimorfismo permite que objetos de diferentes classes derivadas sejam tratados como objetos de uma classe base. Nesse contexto, o uso da palavra-chave virtual sugere que o método calculaSalario() pode ser sobrescrito em qualquer classe derivada, oferecendo uma implementação específica que se adeque ao comportamento desejado para essa subclasse.

Ao declarar um método como virtual, você está indicando que ele é projetado para ser potencialmente sobrescrito nas classes derivadas e que o comportamento específico desse método será determinado em tempo de execução, dependendo do tipo de objeto que está sendo referenciado. Isso é essencial para o polimorfismo, pois permite que você utilize interfaces (referências da classe base) para interagir com objetos de tipos derivados de maneiras que dependam de suas implementações específicas.

Portanto, a alternativa C está correta porque cada classe que herda da classe Empregado será obrigada a fornecer sua própria versão do método calculaSalario(), se assim for necessário, para especializar ou modificar o comportamento de cálculo de salário para diferentes tipos de empregados. Isso não significa que o método deve ser exatamente como declarado na classe base, mas sim que cada classe derivada pode e deve fornecer uma implementação que faça sentido para ela, mantendo a assinatura do método para garantir a compatibilidade com a classe base.

As outras opções são incorretas porque não interpretam de maneira correta a propriedade implementada ou a obrigatoriedade e a natureza da implementação do método nas classes derivadas. O encapsulamento, mencionado nas alternativas B e D, é um conceito diferente que trata da ocultação de detalhes de implementação e exposição apenas de interfaces necessárias para a interação com um objeto, e não está diretamente ligado à linha de comando em questão.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo