Sobes.tech
Junior — Middle

Explicați conceptul de tabel virtual și rolul său în implementarea polimorfismului în programarea orientată pe obiecte.

sobes.tech AI

Răspuns de la AI

Tabelul virtual (vtable) este o structură de date utilizată în limbajele de programare orientate pe obiect pentru a suporta polimorfismul dinamic (la timpul de execuție). Conține pointeri către funcții (metode) care pot fi suprascrise în clasele derivate.

Când un obiect apelează o metodă virtuală, programul, prin intermediul vtable, determină ce implementare a metodei să fie apelată — cea a clasei de bază sau cea suprascrisă în clasa derivată. Acest lucru permite utilizarea aceleiași interfețe pentru diferite tipuri de obiecte, asigurând flexibilitate și extensibilitate a codului.

Exemplu: dacă există o clasă de bază Animal cu o metodă virtuală sound(), iar clasele Dog și Cat o suprascriu, atunci la apelarea lui sound() printr-un pointer la Animal, va fi apelată metoda corespunzătoare subclasei datorită vtable.