Junior
C/C++ proqramlaşdırma dillərində çox formallıq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Polimorfizm obyektlərin çox formaya malik olması və ya irsiyyət nizamında bir neçə növü təmsil etmə xüsusiyyətidir. Bu, əsas sinfin ümumi interfeysi vasitəsilə müxtəlif siniflərin obyektləri ilə işləməyə imkan verir.
C++-da polimorfizm iki əsas üsulla həyata keçirilir:
-
Təchizat vaxtı polimorfizmi (statik, ad-hoc polimorfizm):
- Funksiya və operatorların yüklənməsi ilə həyata keçirilir.
- Konkret funksiya və ya operator seçimi tərtib zamanı baş verir.
// Funksiya yüklənməsi nümunəsi void print(int a) { /* ... */ } void print(double b) { /* ... */ } -
İş vaxtı polimorfizmi (dinamik, alt növ polimorfizmi):
- Virtual funksiyalar və əsas sinfə göstəricilər/linklər vasitəsilə həyata keçirilir.
- Konkret funksiyanın çağırılması iş vaxtında baş verir.
- Ən azı bir virtual funksiyanın əsas sinfdə olması tələb olunur.
- Virtual funksiyalar cədvəli (vtable) istifadə olunur.
// Dinamik polimorfizm nümunəsi class Base { public: virtual void show() { /* Əsas sinfdə implementasiya */ } }; class Derived : public Base { public: void show() override { /* Yenidən yazılmış implementasiya */ } }; // İstifadə Base* ptr = new Derived(); ptr->show(); // Derived::show() çağırılır
Polimorfizm daha çevik və genişlənə bilən kod yazmağa imkan verir, çünki yeni sinflər mövcud kodu dəyişmədən əlavə oluna bilər, əsas siniflə işləyən kod pozulmur.