21-Mavzu : Dinamik xotira bilan ishlash usullari
Ma'lumotlar qatorlari bilan ishlash uchun dasturlar ushbu massivlar uchun xotirani ajratishlari kerak. O'zgaruvchilar massivi uchun xotirani ajratish uchun tegishli operatorlar, funktsiyalar va boshqalar ishlatiladi.C ++ dasturlash tilida xotirani ajratishning quyidagi usullari ajratilgan:
1. Statik(sobit) xotira ajratish. Bunday holda, kompilyatsiya paytida xotira faqat bir marta ajratiladi. Ajratilgan xotiraning hajmi dastur oxiriga qadar sobit va o'zgarmasdir. Bunday tanlovga misol sifatida 10 ta butun sonni deklaratsiyalash mumkin:
int M; // massiv uchun xotira bir marta ajratilgan, xotira hajmi sobit
2.Dinamikxotira ajratish. Bunday holda, yangi va o'chirish operatorlarining kombinatsiyasi qo'llaniladi. Yangi operator o'zgaruvchi (massiv) uchun xotirani maxsus to'plam deb nomlangan xotira maydoniga ajratadi. O'chirish operatori ajratilgan xotirani bo'shatadi. Har bir yangi operator o'z o'chirish operatoriga ega bo'lishi kerak.
DIPLOM OLDI AMALIYOTI XISOBOTI
Sana : «___»________20__ yil
22-Mavzu : Virtual funksiyalar
Virtual funksiyalar mexanizmiga biror komponent funksiyaning har bir xosilaviy
sinfda aloxida varianti mavjud bщlish lozim bщlganda murojaat qilinadi. Bunday
funksiyalarga ega sinflar polimorf sinflar deb ataladi va obyektli dasturlashda
axloxida o‘ringa ega.
Virtual funksiyalar kechki yoki dinamik bog‘lanish mexanizmi asoslangandir.
Asos sinf har qanday nostatik komponent funksiyasi virtual kalit so‘zi yordamida
virtual deb e’lon qilinishi mumkin. Kechki bog‘lanishda erta bog‘lanishga o‘xshab adreslar statik ravishda
kompilyatsiya jaryonida emas, balkim dinamik dastur bajarilishi jarayonida
aniqlanadi. Bog‘lash jarayoni virtual funksiyalarni adreslar bilan almashtirishdan
iborat. Virtual funksiyalar adreslar xaqida ma’lumot saqlanuvchi jadvaldan
foydalanadi.
Virtuallik vorislikka o‘tadi. Funksiya virtual deb e’lon qilingandan so‘ng xosila
sinfda qayta ta’rifi(shu prototip bilan) bu sinfda yangi virtual funksiyani yaratadi, bu
holda virtual spetsifikatori talab qilinmaydi.
Destruktorlardan farqli konstruktorlar virtual bo‘lolmaydi. Amaliy jixatdan
virtual funksiyaga ega har bir sinf virtual destruktorga ega bo‘lishi kerak.