Algumas linguagens de programação orientadas a objeto utili...

Próximas questões
Com base no mesmo assunto
Ano: 2021 Banca: VUNESP Órgão: EsFCEx Prova: VUNESP - 2021 - EsFCEx - Informática |
Q1815179 Programação
Algumas linguagens de programação orientadas a objeto utilizam o conceito de tabela de função virtual, também conhecido como vtable. A finalidade de uma vtable para um programa em execução é
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa B é a correta.

Em linguagens de programação orientadas a objeto, como C++ e Java, o conceito de tabela de função virtual, ou vtable, é utilizado para implementar o polimorfismo, que é um dos pilares desse paradigma. A vtable é essencial para permitir a chamada de métodos polimórficos, ou seja, métodos que podem ter diferentes implementações dependendo do tipo real do objeto que está sendo referenciado.

Alternativa B: A finalidade da vtable é, de fato, permitir a seleção da implementação de função adequada a ser chamada com base no objeto referenciado. Quando um método virtual é chamado em um objeto, a vtable é consultada para determinar qual implementação específica da função deve ser executada. Esta funcionalidade é central para o polimorfismo dinâmico.

Vamos analisar por que as outras alternativas estão incorretas:

Alternativa A: Esta descrição fala sobre chamadas de método remoto, o que está relacionado a tecnologias como RPC (Remote Procedure Call) ou RMI (Remote Method Invocation), mas não tem relação com o conceito de vtable. A vtable opera no contexto de chamadas locais dentro do mesmo processo.

Alternativa C: Esta afirmação sugere que a vtable obteria um ponteiro para o objeto chamador, o que não é sua função. Enquanto as tabelas de funções virtuais lidam com chamadas de métodos, a obtenção de ponteiros para objetos é realizada por outros mecanismos na linguagem.

Alternativa D: Determinar a visibilidade das funções está relacionado ao controle de acesso (public, private, protected) e não é o papel da vtable. A vtable não influencia se uma função pode ser chamada ou não, apenas qual implementação é executada.

Alternativa E: A tradução de bytecode para código de máquina é uma tarefa realizada por compiladores e máquinas virtuais, como a JVM no caso de Java, e não tem qualquer relação com o funcionamento de uma vtable.

Em resumo, a vtable é crucial para que o polimorfismo funcione corretamente, permitindo que a implementação apropriada de um método seja chamada com base no objeto realmente sendo manipulado, e não apenas no tipo estático de uma referência.

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

Comentários

Veja os comentários dos nossos alunos

Quando compila uma classe que tem uma ou mais funções virtuais, ela monta uma tabela de função virtual (vtable) para essa classe. Um programa em execução usa a vtable para selecionar a implementação de função apropriada toda vez que uma função virtual dessa classe é chamada.

Fonte: C - Como programar Deitel 6° edição

Resposta correta Letra(B)

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo