Polimorfizm, undan foydalanish mexanizmlari


Abstrakt funksiyalar va sinflar


Download 19 Kb.
bet2/5
Sana15.06.2023
Hajmi19 Kb.
#1480720
1   2   3   4   5
Bog'liq
programmalash asoslari fanidan Absalamova tashlagan mustaqil ish mavzulari

Abstrakt funksiyalar va sinflar
Mavhum sinflar va funksiyalar polimorfizmning yana bir turi boʻlib, u sinf yoki funksiyani aniqlash imkonini beradi, bu esa uning hosila sinflari muayyan usullar yoki funksiyalarni oʻz amalga oshirishi bilan bekor qilishni talab qiladi.
Mavhum funksiya - bu asosiy sinfda e'lon qilingan, lekin bu sinfda hech qanday ilovaga ega bo'lmagan usul. Abstrakt funktsiya odatda olingan sinflar tomonidan bekor qilinishi uchun mo'ljallangan va u ushbu sinflar uchun funktsiyani o'ziga xos tarzda amalga oshirish uchun reja bo'lib xizmat qiladi. Agar sinf mavhum funktsiyaga ega bo'lsa, sinf mavhum sinf sifatida e'lon qilinishi kerak.
Mavhum sinf - bu o'z-o'zidan yaratib bo'lmaydigan, lekin boshqa sinflar uchun asosiy sinf sifatida foydalanish uchun mo'ljallangan sinf. Abstrakt sinflar odatda bir yoki bir nechta mavhum funksiyalarni o‘z ichiga oladi, bu sinflar namunali bo‘lishi uchun har qanday hosila sinflar tomonidan bekor qilinishi kerak.
Mavhum sinflar va funktsiyalardan foydalanish ob'ektga yo'naltirilgan dasturlashda kuchli texnikadir, chunki u hosila sinflar o'rtasida ma'lum darajadagi izchillikni ta'minlash imkonini beradi, shu bilan birga har bir olingan sinfning o'ziga xos ehtiyojlariga qarab xatti-harakatlarni sozlash imkonini beradi. Abstrakt sinflar va funksiyalar koddan qayta foydalanishni rag‘batlantirishga yordam beradi va vaqt o‘tishi bilan kengaytiriladigan va qo‘llab-quvvatlanadigan sinflar va funksiyalarni aniqlashni osonlashtiradi.
Sof virtual funksiyalar va ularga oid misollar
Sof virtual funktsiyalar - bu C++ tilidagi asosiy sinfda e'lon qilingan, biroq ularning amalga oshirilishi yo'q funksiyalar. Ularning maqsadi asosiy sinfdan meros bo'lib qolgan barcha olingan sinflar sof virtual funktsiyani amalga oshirishini ta'minlashdir.
Mana, sof virtual funksiyaga misol:
class Animal {
public:
virtual void makeSound() = 0; // Pure virtual function
};

class Dog : public Animal {


public:
void makeSound() {
cout << "Woof!" << endl;
}
};

class Cat : public Animal {


public:
void makeSound() {
cout << "Meow!" << endl;
}
};
Ushbu misolda Animal sinfida makeSound() deb nomlangan sof virtual funksiya mavjud. Bu Animal-dan meros bo'lgan har qanday hosila sinf makeSound() funktsiyasini amalga oshirishi kerakligini anglatadi. Bu holda Dog va Cat sinflari ikkalasi ham makeSound() funksiyasini oʻziga xos tarzda amalga oshiradi.

Download 19 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling