Inheritance
C++ da Inheritance haqida
C++ da Inheritance
C++ da class a’zolari va funksiyalari (methods ) ni boshqa classlarga meros sifatida olib o’tishga ruxsat beriladi ya’ni bir class ikkinchi class hususiyatlaridan foydalana oladi. Ushbu holatda classlar ikkiga ajratiladi:
- Derrived class - biror bir classning funksiya yoki o’zgaruvchilarini meros qilib olgan class. (child class ham deb nomlanadi)
- Base class - Meros olingan class. (parent class ham deb nomlanadi)
Barchamiz yoshlikda o’ynagan Counter-strike o’yini esingizdami? Inheritanceni yaxshiroq tushunish uchun ushbu o’yinni misol qilaman. O’yinda ikki xil o’yinchilar mavjud Terrorist va Counter - Terrorist. Bu ikkalasini umumiylashtrish uchun biz Player ya’ni o’yinchi classini hosil qilamiz va ikkala o’yinchilardagi umumiy sifatlarni belgilaymiz.
Yuqorida Player classini health, armor va rifle o’zgaruvchilari va konstruktor funksiyasi bilan e’lon qildik. O’yinimizda yana umumiy bo’lgan narsalardan o’q uzish va ma’lumotlarni ko’rsatib turish mavjud. Keling ushbu funksiyalarni ham Player classimizga qo’shib olamiz.
Yuqorida biz Player classimizga o’q uzish va o’yinchi ma’lumotlarini ekranga chop qilish funksiyalarini qo’shdik. Endi esa mavzuga oid bo’lim inheritancega keldi yani Player classimizdan Derrived classlarimizni (Terrorist va Counter Terrorist) hosil qilishimiz mumkin.
Yuqorida Terroristlarga tegishli classimizni e’lon qildik endi esa qarama qarshi taraf CounterTerrorist classimizni e’lon qilib olamiz. Ushbu classimizni ham Player base classimizga asoslangan holda e’lon qilamz.
Navbat yuqorida yozgan ko’dlarimizni asosiy main() funksiyamiz ichida chaqirib ishga tushirib ko’ramiz.
Yuqorida plantBomb() va defuseBomb() funksiyalari maxsus funksiyalar hisoblanib istalgan o’yinchi uchun amal qilmaydi ya’ni belgilangan o’yinchilar uchun amal qiladi. misol uchun quidagi holatda dastur xato beradi :
Ushbu holatda Terrorist o’yinchilariga tegishli funksiyani CounterTerrorist classidan chaqirilgani uchun dastur xatolikka uchraydi.
Ushbu bo’limda OOP uslubi asosiy tushunchalaridan biri bo’lgan Inheritanceni tushunishga harakat qildik va yoshlikdagi o’yningiz haqida dasturiy tomonlama ozgina umumiy tushuncha berishga harakat qildik. O’zingiz classlar va OOP uslubidan foydalangan holda o’yinning boshqa funksiyalarini ham qo’shib ko’rishingiz mumkin.
Last updated on