114
Хolisanillo
aytganda,
funksiyalarning
tez
chaqirilishi
C++Builder
kompilyatorininggina vazifasiga kirmaydi. Voqealarga ishlov berish funksiyalarini
e’lon qilishda
_
fastcall ning qo‘llanishiga aloxida e’tibor berish kerak. Bu voqealarni
C++Builder avtomatik tarzda generatsiya qiladi.
Oddiy ilovalarning ko‘pi dastlabki dastur matniga ega bo‘lgan bir nechta
fayldan
iborat. Bu fayllar dasturchilar guruxi tomonidan yaratilishi va xizmat ko‘rsatilishi
mumkin. Pirovard natijada barcha fayllar birga to‘planadi va tayyor ilovani
yig‘ishdan iborat bo‘lgan so‘nggi protseduradan o‘tadi.
An’anaviy
tarzda qabul qilinishicha, biron bir lokal soxa (funksiya, sinf tanasi
yokitranslyatsiya moduli) ga kiritilmagan barcha nomlar
umumiy global ismlarni
bo‘lib olishadi. Shuning uchun, agar ayrim modullarni yig‘ish
jarayonida nomlar
takroran aniqlangani ayon bo‘lib qolsa, bu holda har bir nomni qandaydir yo‘l bilan
farqlash zarurligini talab qiladi. C++da bu muammoning yechilishi nomlar
fazosi(namespace) mexanizmi zimmasiga yuklatilgan.
Bu mexanizm ilovani bir necha tarmoq tizimlar (tizimchalar) ga bo‘lib tashlash
imkonini beradi, bunda har bir tarmoq tizim nomlarni
tanlashda erkin ish tutadi,
hamda uning muallifi xuddi shunday ismlardan biron boshqa kimsa foydalanishi
mumkinligiga qayg‘urmasa ham bo‘ladi. Har bir tarmoq tizim global nomlar umumiy
fazosida o‘zining paydo bo‘lganini namespace kalit-so‘zdan
keyin kelgan unikal
identifikator yordamida identifikatsiya qiladi:
namespace
{[]}
Identifikatsiya qilingan nomlar fazosi elementlariga kirishning uchta usuli
mavjud:
Konkret elementga ochiq-oydin kirish kvalifikatsiyasi:
ALPHA :: vart;//ALPHA BETA::F1dagi o‘zgaruvchiga kirish; //BETA dagi
o‘zgaruvchiga kirish
Barcha elementlarga kirish:
using namespace::ALPHA;//ALPHA dagi barcha nomlarga kirish
Nomlarning lokal fazosida yangi identifikatorning e’lon qilinishi:
using :: new_name;//identifikatorning qo‘shilishi