Junior — Middle
Jakie są zalety i wady korzystania z tabel wirtualnych?
sobes.tech AI
Odpowiedź od AI
Tablice wirtualne (vtable) to mechanizm w programowaniu obiektowym, który służy do implementacji dynamicznego polimorfizmu (funkcji wirtualnych).
Zalety:
- Pozwalają wywoływać metody klas pochodnych za pomocą wskaźnika lub referencji do klasy bazowej.
- Zapewniają elastyczność i rozszerzalność kodu.
- Ułatwiają utrzymanie i dodawanie nowych klas bez zmiany istniejącego kodu.
Wady:
- Niewielkie obniżenie wydajności z powodu dodatkowego poziomu wywołania funkcji pośrednich.
- Zwiększenie rozmiaru obiektu przez wskaźnik na tablicę wirtualną.
- Złożoność implementacji i zrozumienia dla początkujących.
Przykład w 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(); // Wywoła Derived::foo dzięki vtable