Sobes.tech
Junior — Middle

Care sunt avantajele și dezavantajele utilizării tabelelor virtuale?

sobes.tech AI

Răspuns de la AI

Tabele virtuale (vtable) este un mecanism în programarea orientată pe obiecte utilizat pentru a implementa polimorfismul dinamic (funcții virtuale).

Avantaje:

  • Permite apelarea metodelor claselor derivate printr-un pointer sau referință la clasa de bază.
  • Oferă flexibilitate și extensibilitate codului.
  • Simplifică întreținerea și adăugarea de noi clase fără a modifica codul existent.

Dezavantaje:

  • Ușoară scădere a performanței din cauza unui nivel suplimentar de apel indirect al funcțiilor.
  • Creșterea dimensiunii obiectului datorită pointerului către tabela virtuală.
  • Complexitate în implementare și înțelegere pentru începători.

Exemplu în 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(); // Va apela Derived::foo datorită vtable