Саноатни ахборотлаштириш факультети” “информатика ва ахборот технологиялари” кафедраси


Download 24.88 Kb.
bet4/4
Sana16.06.2023
Hajmi24.88 Kb.
#1498255
1   2   3   4
Bog'liq
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:
1   2   3   4




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