Sobes.tech
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