Samarqand davlat unversiteti raqamli texnolagiyalar fakulteti amaliy matematika va informatika yo


O'zi o'qiydigan va yozadigan sinflar



Download 65,83 Kb.
bet5/8
Sana10.07.2022
Hajmi65,83 Kb.
#772699
1   2   3   4   5   6   7   8
Bog'liq
Pragrammalash mustaqil ish 2-tarjimasi

O'zi o'qiydigan va yozadigan sinflar
Faraz qilaylik, sizning xotirangizda ko'plab ob'ektlar bor va siz ularning barchasini faylga yozmoqchisiz.
Bu har bir ob'ekt uchun a'zo funktsiyasi faylni ochish, unga bitta ob'ekt yozish va
keyin REWOBJ misolidagi kabi uni yoping. Bu juda tezroq va qancha ob'ektlar mavjud bo'lsa
Bu to'g'riroq - faylni bir marta ochish, unga barcha ob'ektlarni yozish va keyin uni yopish.
Statik funksiyalar
Bir vaqtning o'zida ko'plab ob'ektlarni yozishning usullaridan biri statik a'zo funktsiyasidan foydalanishdir har bir ob'ekt uchun emas, balki butun sinf sifatida. Bu funksiya bir vaqtning o'zida barcha ob'ektlarni yozishi mumkin. Qanday
Bunday funktsiya barcha ob'ektlarning qaerdaligini biladimi? U ko'rsatgichlar qatoriga kirishi mumkin statik ma'lumotlar sifatida saqlanishi mumkin bo'lgan ob'ektlar. Har bir ob'ekt yaratilganda, unga ko'rsatgich saqlanadi bu massiv.
Statik ma'lumotlar a'zosi qancha ob'ekt yaratilganligini ham kuzatib boradi. The
static write() funksiyasi faylni ochishi mumkin; keyin har birini yozgan holda massivdan o'ting
o'z navbatida ob'ekt; va nihoyat faylni yoping.
Olingan ob'ektlarning o'lchami
Ishlarni chindan ham qiziqarli qilish uchun keling, yana bir taxmin qilaylik: ob'ektlar saqlangan xotira hajmi har xil. Nima uchun bu haqiqat bo'ladi? Bu holat odatda bir nechta sinflar asosiy sinfdan olinganida yuzaga keladi. Masalan, EMPLOY dasturini ko'rib chiqing
“Meros”. Bu erda bizda asosiy sinf vazifasini bajaradigan xodimlar sinfi mavjud
boshqaruvchi, olim va ishchi sinflari. Ushbu uchta hosila sinfning ob'ektlari har xil
o'lchamlari, chunki ular turli xil miqdordagi ma'lumotlarni o'z ichiga oladi. Xususan, ismga qo'shimcha ravishda va barcha xodimlarga tegishli bo'lgan xodim raqami, menejer unvon va golf klubi to'lovlariga ega va olimning qator nashrlari bor.
Biz olingan ma'lumotlarni barcha uch turdagi ob'ektlarni o'z ichiga olgan ro'yxatdan yozmoqchimiz (menejer, olim va ishchi) oddiy sikl va write() aʼzo funksiyasidan foydalangan holda oqimdan tashqari. Ammo bu funktsiyadan foydalanish uchun ob'ekt qanchalik katta ekanligini bilishimiz kerak, chunki bu uning ikkinchi argumentidir.
Faraz qilaylik, bizda xodim tipidagi ob'ektlarga ko'rsatgichlar majmuasi (uni arrap[] deb ataymiz). Bular
ko'rsatkichlar uchta olingan sinf ob'ektlariga ishora qilishi mumkin. (Bobdagi VIRTPERS dasturiga qarang
Olingan sinflar ob'ektlariga ko'rsatgichlar qatoriga misol uchun
11.) Biz bilamizki, agar biz virtual funktsiyalardan foydalanib, biz kabi bayonotlar qilishimiz mumkin
arrap[j]->putdata();
Putdata() funktsiyasining ko'rsatgich ko'rsatgan ob'ektga mos keladigan versiyasi bo'ladi asosiy sinfdagi funksiyadan ko'ra foydalaniladi. Lekin biz ham sizeof() funksiyasidan foydalana olamizmi? ko'rsatgich argumentining hajmini qaytarasizmi? Ya'ni, aytish mumkin
ouf.write( (char*)arrap[j], sizeof(*arrap[j]) ); // no good
Yo'q, chunki sizeof() virtual funktsiya emas. U turini hisobga olish kerakligini bilmaydi ko'rsatgich turi emas, balki ko'rsatilgan ob'ekt. U har doim o'lchamini qaytaradi
asosiy sinf ob'ekti.



Download 65,83 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




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