Junior — Middle
Koje su prednosti i mane korišćenja virtuelnih tabela?
sobes.tech АИ
Одговор од АИ
Virtuelne tabele (vtable) su mehanizam u objektno-orijentisanom programiranju koji se koristi za implementaciju dinamičkog polimorfizma (virtuelnih funkcija).
Prednosti:
- Omogućavaju pozivanje metoda izvedenih klasa putem pokazivača ili reference na osnovnu klasu.
- Nude fleksibilnost i proširivost koda.
- Olakšavaju održavanje i dodavanje novih klasa bez izmene postojećeg koda.
Nedostaci:
- Blago smanjenje performansi zbog dodatnog nivoa indirektnog poziva funkcija.
- Povećanje veličine objekta zbog pokazivača na virtuelnu tabelu.
- Složenost u implementaciji i razumevanju za početnike.
Primer u 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(); // Pozvaće Derived::foo zahvaljujući vtable