113
C++Builder ilovani loyixalash bosqichida Obyektlar Inspektori tomonidan aks
ettiriladigan komponentalar xususiyatlarini spetsifikatsiyalash uchun _published
modifikatoridan foydalanadi. Agar komponentaning ishlab chiquvchisi biron-bir
xususiyat qiymatini modifikatsiyalashga ruxsat berishni xoxlab qolsa, bu xususiyat _
published sifatida e’lon qilinmaydi. Ushbu kalit-so‘z bilan aniqlanayotgan ko‘rimlilik
qoidalari public sifatida e’lon qilingan ma’lumotlar a’zolari, metodlar va
xususiyatlarning ko‘rimlilik qoidalaridan farq qilmaydi. Yagona farq shundaki,
dasturning ishlash paytida Obyektlar Inspektoriga RTTI axboroti uzatiladi.
C++Builder voqealar ishlatgichlari funksiyalarining e’loni uchun _closure
modifikatoridan foydalanadilar:
(_closure*)(
)
Bu kalit-so‘z funksiya ko‘rsatkichini name nomi bilan aniqlaydi. Oddiy
funksiyaning 4 baytli adresli ko‘rsatkichidan farqli o‘laroq (bu ko‘rsatkich CS:IP kod
registrlariga uzatiladi), 8 baytli _closure yana yashirin parametrni ham uzatadi (joriy
sinf ekzemplyariga txis o‘zgaruvchan ko‘rsatkichi).
8 baytli ko‘rsatkichlarning kiritilishi, nafaqat aniqlangan sinfning biron-bir
funksiyasini chaqirib olish imkonini beradi, balki ushbu sinfning aniqlangan
ekzemplyaridagi funksiyaga murojaat qilish imkonini ham beradi. Bu qobiliyat
Obyektli Paskaldan o‘zlashtirilgan edi, _closure yesa Vizual Komponentalar
Kutubxonasidagi voqealar mexanizmini ishga tushirishda xavodek zarur bo‘lib qoldi.
Dostları ilə paylaş: