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.