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