Саноатни ахборотлаштириш факультети” “информатика ва ахборот технологиялари” кафедраси
Download 24.88 Kb.
|
dasturlash naz 3
Polimorfizm. Poli – ko‘p, morfe – shakl degan ma’noni bildiradi. C++ tili bir
xil nomdagi funksiya turli ob’yektlar tomonidan ishlatilganda turli amallarni bajarish imkoniyatini ta’minlaydi. Polimorfizm – shaklning ko‘p xilligidir. Dasturda ishlatiladigan har bir o‘zgaruvchi o‘z toifasiga ega va u quyidagilarni aniqlaydi: 1. Xotiradagi o‘lchovini; 2. Unda saqlanayotgan ma’lumotlarni; 3. Uning yordamida bajarilishi mumkin bulgan amallarni. C++ tilida dasturchi o‘ziga kerakli ixtiyoriy toifani hosil qilishi mumkin. Bu yangi toifa ichki toifalarning xossalari v a ularning funksional imkoniyatlarini o‘zida ifodalaydi. Yangi toifa sinfni e’lon qilish orqali tuziladi. Sinf bu – bir-biri bilan funksional bog‘angan o‘zgaruvchilar va usullar (funksiyalar) to‘plamidir. Masalan: Mushuk nomli sinf tuzmoqchimiz. Bu yerda uning yoshi, og‘irligi kabi o‘zgaruvchilar va miyovlash, sichqon tutish kabi funksiyalardan ishdatiladi. Yoki Mashina sinfi g‘ildirak, eshik, o‘rindiq, oyna kabi o‘zgaruvchilar va xaydash, to‘xtatish kabi funksiyalardan iborat. Sinfdagi o‘zgaruvchilar – sinf a’zolari yoki sinf xossalari deyiladi. Sinfdagi funksiyalar odatda o‘zgaruvchilar ustida biror bir amal bajaradi. Ularni sinf usullari (metodlari) deb ham ataladi. Sinfni e’lon qilish uchun class so‘zi , { } ichida esa shu sinfning a’zolari va usullari keltiriladi. Masalan: class non { int ogirlik ; int baho ; void yasash ( ); void yopish ( ); void eyish ( ); } Sinfni e’lon qilishda xotira ajratilmaydi. Sinf e’lon qilinganda kompilyator faqat shunday (non) sinf borligini, hamda unda qanday qiymatlar (ogirlik, baho) saqlanishi mumkinligini, ular yordamida qanday amallarni (yasash, yopish, yeyish) bajarish mumkinligi haqida xabar beradi. Bu sinf ob’yekti hammasi bo‘lib 4 bayt joy egallaydi (2 ta int). Ob’yekt sinfning biror bir nusxasi hisoblanadi. C++ tilida toifalarga qiymat o‘zlashtirilmaydi, balki o‘zgaruvchiga o‘zlashtiriladi. Shuning uchun to‘g‘ridan-to‘g‘ri int = 55 deb yozib bo‘lmaganidek non.baho=1200 deb ham bo‘lmaydi. O‘zlashtirishda xatolikka yo‘l qo‘ymaslik uchun oldin non sinfiga tegishli patir ob’yektini hosil qilamiz keyin esa unga kerakli qiymatlarni beramiz. Masalan: int a; // butun toifali a o‘zgaruvchisi, ob’yekti non patir; // Endi non sinfining real ob’yekti aniqlanganidan so‘ng uning a’zolariga murojaat patir.baho = 1200; patir.ogirlik = 500; patir.yasash ( ) ; Sinfni e’lon qilishda quyidagilardan foydalaniladi: public - ochiq private – yopiq Sinfning barcha usul va a’zolari boshlang‘ich holda avtomatik ravishda yopiq bo‘ladi. Yopiq a’zolarga esa faqat shu sinfning usullari orqaligina murojaat qilish mumkin. Ob’yektning ochiq a’zolariga esa dasturdagi barcha funksiyalar murojaat qilishi mumkin. Lekin sinf a’zolariga murojaat qilish ancha mushkul ish hisoblanadi. Agar to‘g‘ridan to‘g‘ri: non patir; patir.baho = 1200; patir.og‘irlik = 500; deb yozsak xato bo‘ladi. A’zolarga murojaat qilishdan oldin uni ochiq deb e’lon qilish kerak: #include < iostream.h > class non { public : int baho; int ogirlik; void yasash ( ); }; int main ( ) { non patir; patir.baho = 1200; patir.ogirlik = 500; cout <<“men olgan patir” < cout <<“uning og‘irligi =”< Download 24.88 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling