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.
Abstrakt sinflarning mexanizmi keyinchalik konkretizatsiyalanadigan umumiy
tushunchalarni tavsiflash uchun ishlab chiqilgan. Bu holda, sinflar iyerarxiyasini
yaratish quyidagi sxema bo‘yicha bajariladi.
Ierarxiya asosida abstrakt bazoviy sinf turadi. U interfeysni meros kilib olish uchun
foydalaniladi. Хosila sinflar bu interfeysni konkretizatsiyalaydi va amalga oshiradi.
Abstrakt sinfda sof virtual funksiyalar
elon etilgan, ular aslida abstrakt usullar.
Ba’zi sinflar masalan shape sinfi, abstrakt tushunchalarni ifodalaydi va ular uchun
obyekt yaratib bo‘lmaydi. Bunday sinflar biror xoila sinfda ma’noga ega bzladm:
Dostları ilə paylaş: