Junior — Middle
Quais são as vantagens e desvantagens de usar tabelas virtuais?
sobes.tech IA
Resposta da IA
As tabelas virtuais (vtable) são um mecanismo na programação orientada a objetos usado para implementar o polimorfismo dinâmico (funções virtuais).
Vantagens:
- Permitem chamar métodos de classes derivadas através de um ponteiro ou referência à classe base.
- Oferecem flexibilidade e extensibilidade ao código.
- Simplificam a manutenção e a adição de novas classes sem alterar o código existente.
Desvantagens:
- Pequena redução de desempenho devido a um nível adicional de chamada indireta de funções.
- Aumento do tamanho do objeto devido ao ponteiro para a tabela virtual.
- Complexidade na implementação e compreensão para iniciantes.
Exemplo em C++:
class Base {
public:
virtual void foo() { std::cout << "Base" << std::endl; }
};
class Derived : public Base {
public:
void foo() override { std::cout << "Derived" << std::endl; }
};
Base* b = new Derived();
b->foo(); // Chama Derived::foo graças à vtable