Junior — Middle
Virtual cədvəllərdən istifadə etməyin üstünlükləri və çatışmazlıqları hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
Virtual cədvəllər (vtable) obyekt yönümlü proqramlaşdırmada dinamik çox biçimlilik (virtual funksiyalar) həyata keçirmək üçün istifadə olunan mexanizmdir.
Üstünlüklər:
- Törəmə siniflərin metodlarını baz sinfə işarə və ya göstərici vasitəsilə çağırmağa imkan verir.
- Koda elastiklik və genişləndirmə imkanı verir.
- Mövcud kodu dəyişmədən yeni siniflərin əlavə olunmasını və dəstəyini asanlaşdırır.
Çatışmazlıqlar:
- Funksiyaların çağırılması üçün əlavə bir səviyyə səbəbindən performans azalmağı.
- Virtual cədvələ göstərici sayəsində obyektin ölçüsünün artması.
- Yeni başlayanlar üçün tətbiq və anlama çətinliyi.
C++ nümunəsi:
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(); // vtable sayəsində Derived::foo çağırılır