1 – dars. C++ Dasturlash tilining kelib chiqishi xaqida ma’lumot



Download 4,47 Mb.
bet82/89
Sana15.04.2022
Hajmi4,47 Mb.
#553102
1   ...   78   79   80   81   82   83   84   85   ...   89
Bog'liq
C kitob TAYYOR

Nomlar konfliktini hal kilish

Agar bir sinfdan ikkinchisini hosil qilinsa asosiy va hosilaviy sinflarda elementlar nomlari bir hil bo’lishi mumkin. Bu holda 'hosilaviy sinf ichidagi funktsiyalarda hosilaviy sinf elementaridan foydalaniladi. Misol uchun book i library_card sinflari price elementlaridan foydalansin. Agar aniq ko’rsatilmagan bo’lsa library_card chsinfi funktsiyalari shu sinfning price elementidan foydalanadi. Agar library_card sinfi funktsiyalaori book sinfi price elementiga murojaat qilishi lozim bo’lsa ruhsat operatoridan foydalanishi lozim, masalan book::price. Agar show_card funktsiyasi ikkala narhni ekranga chiqarishi lozim bo’lsa qo’yidagi operatorlardan foydalanishi lozim:


cout << "Bibliotechnaya tsena: $" << price << endl;
cout << "Prodajnaya tsena: $" << book::price << endl;


79 - DARS.VORISLIKDA MUROJAAT HUQUQLARI.

Vorislikda asosiy sinfning ba'zi komponenta ma'lumotlari yoki komponenta funktsiyalari hosilaviy sinfda yangidan ta'riflanishi mumkin. Bu holda asosiy sinfning komponentalariga hosilaviy sinfdan to’g’ridan-to’g’ri murojaat qilib bo’lmaydi. Bu holda ko’rinish doirasini aniqlovchi ^:: amalidan foydalanish lozimdir. Har qanday komplament sinf o’z urnida boshqa sinflar uchun hosilaviy bo’ladi. Sinflar va ob'ektlar ierarhiyasida hosilaviy ob'ekt hamma asosiy sinflarning ruhsat berilgan komponentalarini hisobga oladi. Sinflar volisligida komponentalarning murojaat huquqlari katta rol' o’ynaydi. Haqiqiy sinf uchun komponentalari ta'sir doirasida yotadi. Shuning uchun sinfga tegishli har qanday funktsiya ihtiyoriy komponenta ma'lumotlariga murojaat qilishi va sinfga tegishli ihtiyoriy funktsiyani chaqirishi mumkin. Sinf tashqarisida faqat public huquqiga ega komponentalarga murojaat qilish mumkin. Sinflar perergiyasida sinf komponentalariga murojaat huquqlari qo’yidagilar:


Hususiy (private) metodlar va ma'lumotlarga faqat sinf ichida murojaat qilish mumkin.
Himoyalangan (protected) komponentalari o’z sinflari va shu sinfga me'roshur bo’lgan hamma hosilaviy sinflarga murojaat qilish mumkin.
Umumiy (public) komponentlar global ya'ni dastur ihtiyoriy nuqtasidan murojaat qilish mumkin.
Himoyalanganlari murojaat sinf clarl, istruct yoki union so’zlarining qaysi biri bilan ta'riflanganligiga ham bog’likdir.
A " ekrandagi nuqta" asosiy sinf hisoblansa uning asosida " ekrandagi darcha sinfni ugirish mumkin. Bu sinf berilganlarni ikki nuqta :
& chap yuqori burchakli aniqlovchi nuqta
& darcha o’lchovlarini ya'ni chap yuqori burchakka nisbatan koordinatalar o’qi
buyicha siljish.
Ekrandagi darcha sinfi me'todlari:
& darchani H o’qi bo’yicha DX ga surish
& darchani U o’qi bo’yicha DY ga surish
& chap yuqori burchak H koordinatasini aniqlash
& chap yuqori burchak U koordinatasini aniqlash;
& H o’qi buyicha darcha uzunligini aniqlash
& Y uki buyicha darcha uzunligini aniklash
Darchaning ekrandagi konstrutuktori:
& ekranda chap yuqori burchagi va ulchamlari asosida berilgan nomli darcha
yaratish;
Ekrandagi destruktori
& berilgan nomli darchani yo’q qilish:
Nasldan o’tuvchi komponentalarga qo’shimcha jpot sinfiga qo’yidagi komponentalarni kiritamiz: tasvir radiusi (rad); ekralus sos etilishi (vir=0 ekranda tasvir yuk; vi1==1 ekranda tasvir bor); tasvirni bitli matnda saylash chun ajratilgan hotira qismiga ko’rsatgich pspot.
Spot.cpp
# Ifudef. Spot
# Spot1
"Include " " point. Epp"
Clall spot;
{Int rad;
Int vil;
Int tag;
Void * pspot;
Public;
Spot (int xi, int yi, int ri);
Point (xi, yi)}
{int size ;
vir =0;tag=0;rad=ri;
Size=image size (xi-ri; yi-ri; xis ri; yiri);
Pspot=neo char [Size];
}
~ Spot ()
{h del();
tag =0;
Delete pspot;
}
Voit show ()
{If (tag==0)
{Cirele (x, y, rad);
Flood siell (x, y, getcolor ());
Get image (x-rad, y-rad, y+rad, pspot);
Tag=1};
Else
Putimage (x-rad, y-rad, pspot, XOR-PUT);
Vi1=1;
}
Void hide ()
{If (vi1==0) return;
Putimage (x-rad,y-rad, pspot, XOR-PUT);
Vi1=0;
}
Void move (int xn, int yn)
{Hide ();
x- xn, y-yn;
Shov ();
}
Viod vary (float dr)
{Floata;
Int size;
Hide ();
Tag=0;
Delete pspot;
A=dr*rad;
If (a<=0) rad=0;
Else rad= (int) a;
Size=imagerize (x-rad; y-rad, x+rad, y+rad);
New char [size];
Show ();
}
int& giver (void);
{Return rad;}
};
# Endif
Spot sinfida construktor destruktor ~ spot () va beshta metod ko’rsatilgan:
Show ()-- ekranga doirani chizib, bitli tasvirni hotiraga olish;
Hide ()-- ekrandan doira tasvirini uchirish;
Move ()--tasvirni ekranning bitta joyiga ko’chirish;
Vary ()--ekrandagi tasvirni o’zgartirish (kichkinalashtirish yoki kattalashtirish);
Giver () --doira radiusiga murojatni ta'minlash;
Point sinfidan Jpot sinfi naslga nuqta markazi (h,u) koordinatalarini va givek, givey metodlarni oladi, Point : : show () va point : : move () metodini huddi shu nomli yangi funktsiyalar bilan almashtirilgan.point :: hide funktsiyasi nomi o’tmaydi chunki point sinfida u hususiy (private) statiyasiga ega. Stop() konstruktor uch parametrga ega -mernez koordinatalari (xi,yi) va doira radiusi (ri).
Avval point sinfi konstruktori chaqiriladi bu konstruktor xi,yi ga mos keluvchi haqiqiy parametr asosida doira markazini aniqlaydi. Asosiy sinf konstruktori har doim hosilaviy sinf konstruktoridan oldin chaqiriladi. So’ngra spot() sinfi konstruktolari boshlanadi. Bu konstruktor vi1, tag parametrlarining boshlang’ich qiymatini aniqlaydi va ri gamos keluvchi haqiqiy parametr qiymati asosida doira radiusi red aniqlanadi. Standart funktsiya imagelizi yordamida doira joylashuvchi kvadratik operativ hotirada aniqlash uchun zarur bo’lgan hotira hajmi hisoblanadi. Kerakli hotira new standart operatsiya yordamida ajratib size elimentidan iborat chur massivlar yoziladi. Agar aytilgan hotira spot sinfida protected statutisiga ega bo’lgan spot ko’rsatkichiga ulanadi.



Download 4,47 Mb.

Do'stlaringiz bilan baham:
1   ...   78   79   80   81   82   83   84   85   ...   89




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish