Comparar e contrastar as estratégias de implementação de Tabela de Métodos Virtuais em C++ e Java.
Virtuais em C++ e Java.
William Caldas de Tunes¹
¹Centro de Desenvolvimento Tecnológico (CDTEC) – Universidade Federal de Pelotas
(UFPel)
Caixa Postal: 354 – 96010-900 – Pelotas – RS – Brazil
{wcdtunes}@inf.ufpel.edu.br
Resumo. Este artigo tem como objetivo comparar e contrastar as estratégias de implementação de Tabela de Métodos Virtuais em C++ e Java. Visando mostrar o modo de programação orientada a objeto nas estruturas e linguagens propostas. Mostrando formas de implementações nas hierarquias de classes, tendo como objetivo organizar identificadores, diminuir o tempo e espaço, e fazer com que seja mais rápido esse modo de execução. Mostrando estratégias para a eficiência do algoritmo.
1. Tabela de Métodos Virtuais na Programação Orientada a Objetos
Na programação orientada a objetos, um método virtual é um método onde existe uma forma de poder sobre escrever em uma classe filha um método que herda tudo que foi programado na classe mãe. Esse conceito é uma parte muito importante do polimorfismo em programação orientada a objetos.
Métodos virtuais é conceituado em uma tabela de métodos virtuais, a(Virtual
Method Table – VMT), também conhecida como v-table (como em C++). A tabela de métodos virtuais é uma organização onde se tem todos os endereços dos métodos. Para chamar a um método virtual, o compilador gera um certo código para avançar para o endereço armazenado no fim do slot da tabela. O compilador determina um índice e procura pelo objeto em tempo de execução, que se armazena como um número aleatório dentro do mesmo objeto.
No geral, métodos virtuais são otimizados para serem mais rápidos enquanto que os métodos dinâmicos são otimizados para tamanho reduzido de código.
2. Problemas e Fundamentos teóricos
As tabelas de métodos virtuais interfere em uma rápida execução das chamadas a métodos. Uma razão para que elas sejam executadas é que elas