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


- DARS.VORISLIKDA MUROJAAT HUQUQLARI



Yüklə 0,69 Mb.
səhifə110/121
tarix02.01.2022
ölçüsü0,69 Mb.
#37187
1   ...   106   107   108   109   110   111   112   113   ...   121
aaaaKitob majmuasiiii

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.





Yüklə 0,69 Mb.

Dostları ilə paylaş:
1   ...   106   107   108   109   110   111   112   113   ...   121




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin