Sobes.tech
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