Junior — Middle
Millised on virtuaalsete tabelite kasutamise eelised ja puudused?
sobes.tech AI
Vastus AI-lt
Virtuaalsed tabelid (vtable) on mehhanism objektorienteeritud programmeerimises, mida kasutatakse dünaamilise polümorfismi (virtuaalsete funktsioonide) rakendamiseks.
Eelised:
- Annab võimaluse kutsuda pärilike klasside meetodeid läbi näitaja või viite põhiklassile.
- Pakub koodi paindlikkust ja laiendatavust.
- Lihtsustab hooldust ja uute klasside lisamist olemasoleva koodi muutmata.
Miinused:
- Väike jõudluse langus funktsioonide kaudse väljakutse täiendava taseme tõttu.
- Objekti suuruse suurenemine virtuaalse tabeli näitaja tõttu.
- Keerukus rakendamisel ja mõistmisel algajatele.
Näide C++-is:
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(); // Kutsub välja Derived::foo tänu vtable'ile