Sobes.tech
Junior — Middle

¿Cuáles son las ventajas y desventajas de usar tablas virtuales?

sobes.tech AI

Respuesta de la IA

Las tablas virtuales (vtable) son un mecanismo en programación orientada a objetos que se utiliza para implementar el polimorfismo dinámico (funciones virtuales).

Ventajas:

  • Permiten llamar a métodos de clases derivadas a través de un puntero o referencia a la clase base.
  • Ofrecen flexibilidad y extensibilidad del código.
  • Simplifican el mantenimiento y la adición de nuevas clases sin modificar el código existente.

Desventajas:

  • Pequeña disminución del rendimiento debido a un nivel adicional de llamada indirecta a funciones.
  • Aumento del tamaño del objeto debido al puntero a la tabla virtual.
  • Complejidad en la implementación y comprensión para los principiantes.

Ejemplo en 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(); // Llamará a Derived::foo gracias a la vtable