Mavzu: Voris sinflar yaratish va ular yordamida




Download 0,71 Mb.
Pdf ko'rish
bet3/7
Sana20.12.2023
Hajmi0,71 Mb.
#124433
1   2   3   4   5   6   7
Bog'liq
mustaqil ish 4 dasturlashdan (1)122

Mavzu: Voris sinflar yaratish va ular yordamida 
masalalarni yechish. 

Reja: 
1.Voris sinflarga ta'rif
2.VORISLIKDA MUROJAAT HUQUQLARI.
3.Ular yordamida misollar



Har hil sinflar ob'ektlar va sinflarning uzlari vorislik munosabatlarida 
bo’lishi mumkin. Bu munosabat obe'ktlar va sinflar ierarhiyasi hosil 
bo’lishiga olib keladi. Sinflar ierarhiyasi mavjud sinflar yordamida, ya'ngi 
sinf yaratishga imkon beradi. Mavjud sinflar asosiy (yoki yaratuvchi) bu 
sinflar asosida shakillangan sinflar hosilaviy (yoki yaratilgan), ba'zida sinf 
vorislari yoki meroshurlari deb ataladi.
Hosilaviy sinflar asosiy sinflarning ma'lumotlari va metodlarini merosga 
oladilar. Bundan tashqari ularning o’z ma'lumotlari va metodlari bo’lishi 
mumkin.
Me'roslik o’tuvchi pommosontalar hosilaviy sinflarga ko’chmaydi, balki 
asosiy sinflarda qoladi. Agar ahborotlarni qayta ishlash uchun hosilaviy 
sinfda yuq bo’lgan ma'lumotlar kerak bo’lsa ular avtomatik ravishda 
asosiy sinfda qidiriladi.
Sodda vorislik
Vorislik hosilaviy sinfning mavjud asosiy sinfning harakteristikalarini 
merosga olish hususiyatidir.
Misol uchun asosiy sinf employee mavjud bo’lsin:
Class employee
{
Public:
Employee(char *, char *, float);


Void show_employee(void);
Private:
Char name[64];
Char position[64];
Float salary;
};
Dasturda yangi manager sinfi yaratib employee sinfining qo’yidagi 
elementlarini merosga olishi lozim bo’lsin:
public:
manager(char *, char *, char *, float, float, int);
void show_manager(void);
private:
float annual_bonus;
char company_car[64];
int stock_options;


};
Hosilaviy sinf asosiy sinfning elementlariga to’g’ridan – to’g’ri nuqta 
operatori orqali murojaat qila olmaydi. Qo’yidagi MGR_EMP.CPP 
dasturda vorislikdan foydalanish ko’rsatiladi:
#include
#include
class employee
{
public:
employee(char *, char *, float);
void show_employee(void);
private:
char name [ 64 ];
char position[64];
float salary;
};
Hosilaviy sinf asosiy sinfning elementlariga to’g’ridan – to’g’ri nuqta 
operatori orqali murojaat qila olmaydi. Qo’yidagi MGR_EMP.CPP 
dasturda vorislikdan foydalanish ko’rsatiladi:


public:
manager(char *, char *, char *, float, float, int);
void show_manager(void);
private:
float annual_bonus;
char company_car[64];
int stock_options;
};
Hosilaviy sinf asosiy sinfning elementlariga to’g’ridan – to’g’ri nuqta 
operatori orqali murojaat qila olmaydi. Qo’yidagi MGR_EMP.CPP 
dasturda vorislikdan foydalanish ko’rsatiladi:
#include
#include
class employee
{
public:
employee(char *, char *, float);
void show_employee(void);


private:
char name [ 64 ];
char position[64];
float salary;
};
Yana shunga e'tibor berinki show_manager funktsiyasi show_employee 
funktsiyasini chaqirishi mumkin, chunki manager sinfi employee sinfining 
vorisi bo’lgani uchun, umumiy elemenlariga murojaat qilishi mumkindir.
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.

Download 0,71 Mb.
1   2   3   4   5   6   7




Download 0,71 Mb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



Mavzu: Voris sinflar yaratish va ular yordamida

Download 0,71 Mb.
Pdf ko'rish