Sinflarni qo’llash Konstruktor haqida ma’lumot



Yüklə 20,9 Kb.
səhifə2/4
tarix14.12.2023
ölçüsü20,9 Kb.
#179122
1   2   3   4
malumot ref

Sinfni e’lon qilish.
Sinfni e’lon qilish uchun class kalitli so’zi, undan so’ng ochiluvchi figurali qavs, so’ng xossalar va usullari ro’yxati ishlatiladi. Sinfni e’lon qilish yopiluvchi figurali qavs va nuqtali vergul orqali yakunlanadi. Masalan, Mushuk sinfini quyidagicha e’lon qilish mumkin.
Class Mushuk
{
unsigned int itsYosh ;
unsigned int itsOgirlik ;
void Miyovlash()
}
Mushuk sinfini e’lon qilishda xotira zahiralanmaydi. E’lon qilish, kompilyatorga Mushuk sinfini mavjudligini, hamda unda qanday qiymatlar saqlashi mumkinligi (itsYosh, itsOgirlik) va u qanday amallarni bajarishi mumkinligi (Miyovlash() usuli) haqida xabar beradi. Bundan tashqari, bu e’lon qilish orqali kompilyatorga Mushuk sinfining o’lchami, ya’ni har bir Mushuk sinfi obyekti uchun kompilyator qancha joy ajratishi lozimligi haqida ham ma’lumot beradi. Masalan, joriy misolda butun qiymat uchun to’rt bayt talab qilinsa, Mushuk sinfi obyekti o’lchovi sakkiz bayt bo’ladi. (itsYosh o’zgaruvchisi uchun to’rt bayt, itsOgirlik o’zgaruvchisi uchun to’rt bayt). Miyovlash() usuli xotiradan joy ajratishni talab qilmaydi.
Obyektni e’lon qilish
Yangi turdagi obyekt xuddi oddiy butun sonli o’zgaruvchidek aniqlanadi. Haqiqatan ham ixtiyoriy butun sonli o’zgaruvchi quyidagicha aniqlanadi:
unsigned int MyVariable
//ishorasiz butun sonni aniqlaymiz
Cat sinfidagi obyekt esa quyidagicha aniqlanadi:
Mushuk Frisky //Mushuk obyektini aniqlaymiz.
Bu dasturiy kodlarda unsigned int tipidagi MyVariable nomli o’zgaruvchi va Mushuk sinfining Frisky nomli obyekti aniqlandi.
Ko’pgina hollarda sinf va obyekt tushunchalarini ishlatishda chalkashlikka yo’l qo’yiladi. Shuning uchun, obyekt sinfning biror bir ekzemplyari (nusxasi) ekanligini yana bir bor ta’kidlash joiz.
Sinf a’zolariga murojaat qilish imkoni
Mushuk sinfining real obyektini aniqlaganimizdan so’ng bu obyektning a’zolariga murojaat qilish zaruriyati tug’ilishi mumkin. Buning uchun bevosita murojaat (.) operatori qo’llaniladi. Masalan, Frisky obyektining Weight o’zgaruvchi - a’zosiga 50 sonini o’zlashtirmoqchi bo’lsak quyidagi jumlani yozishimiz lozim.
Fresky.Weight=50;
Meow() usulini chaqirish uchun esa
Frisky.Meow();
jumlasini yozish lozim.
Qiymat sinfga emas obyektga o’zlashtiriladi
C++ tilida berilganlar tipiga qiymat o’zlashtirilmaydi. Qiymat faqatgina o’zgaruvchilarga beriladi. Masalan, quyidagi yozuv noto’g’ridir:
Int=s // noto’g’ri
Kompilyator int tipiga qiymat o’zlashtirilishi xatolik ekanligi haqida xabar beradi. Xuddi shu nuqtai – nazardan quyidagi yozuv ham noo’rindir:
Cat.itsYosh= 5 // noto’gri
Agarda Mushuk obyekt bo’lmasdan sinf bo’lsa, yuqoridagi ifodani ham kompilyator xato deb hisoblaydi. O’zlashtirish amalini bajarishda xatolikka yo’l qo’ymaslik uchun oldin Mushuk sinfiga tegishli Frisky obyektini hosil qilish va uning ItsYosh maydoniga 5 qiymatini berish lozim.
Mushuk Frisky;
Frisky.itsYosh=5;

Butun sonli o’zgaruvchini aniqlashning ikki xil yo’li bor. Birinchisi, oldin o’zgaruvchini aniqlash, keyin esa unga biror bir qiymat o’zlashtirishdir. Masalan,


int Ogirlik; // o’zgaruvchini aniklash
........ // bu yerda boshka ifodalar bor
Ogirlik=7; // o’zgaruvchiga qiymat o’zlashtiramiz.
Ikkinchisi, o’zgaruvchi aniqlanishi bilan birga unga darhol qiymat o’zlashtiriladi, masalan:
int Ogirlik=7; //o’zgaruvchini e’lon qilamiz
// va unga qiymat o’zlashtiramiz.
Qiymat berish amali o’zgaruvchi aniqlanishi bilan unga boshlang’ich qiymat o’zlashtirilishini anglatadi. Keyinchalik, bu o’zlashtirilgan qiymatni o’zgartirishingiz ham mumkin.
Konstruktor - bu ob'ektga xotira ajratish uchun sinfdagi maxsus a'zolar funktsiyasi. Bu ma'lumotlar a'zolari uchun qiymatlarni ta'minlash uchun ishlatilishi mumkin. Ob'ekt yaratilganda konstruktor chaqiriladi. U sinf nomi bilan bir xil nomga ega. Konstruktor hech qanday qiymat bermaydi. Shuning uchun, u qaytish turini o'z ichiga olmaydi. Konstruktor parametrlarni ham qabul qilishi mumkin. Parametrlari bo'lgan konstruktor parametrlangan konstruktor sifatida tanilgan.
Sinfning o’zgaruvchi–a’zosiga qanday qiymat o’zlashtirildi? Buning uchun sinfda konstruktor deb ataluvchi maxsus funksiya – a’zo ishlatiladi. Zaruriy vaqtda konstruktor bir nechta parametrni qabul qiladi. Lekin hech qanday tipdagi qiymat qaytarmaydi. Konstruktor – bu sinf nomi bilan ustma – ust tushadigan sinf usulidir.
Sinfda konstruktorni e’lon qilinishi bilan destruktorlar ham aniqlanishi lozim. Agarda konstruktor sinf obyektini tuzish va uning o’zgaruvchi – a’zolariga qiymat berish vazifasini bajarsa, destruktor mavjud obyektning xotiradan o’chiradi.

Yüklə 20,9 Kb.

Dostları ilə paylaş:
1   2   3   4




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