83
10 bob. FUNKSIYALAR VA SINFLAR SHABLONLARI
10.1. Funksiyalar shablonlari
Funksiya shablonlari (parametrlangan turlar) bog‘langan funksiyalar oilasini
tuzish imkonini beradi. Shablon kiritilishi uchun, hosil qilingan funksiya
avtomatlashtirish, har xil tipli ma’lumotlarni qayta ishlashdan iborat. Masalan,
algoritm tartiblash uchun har qaysi funksiyani o‘zini aniqlovchi tipi qo‘llaniladi.
Funksiya shabloni bir marta aniqlanadi, lekin parametrli aniqlashda va hokazo,
ma’lumotlar tipi shablon parametrlari orqali beriladi. Shablon formati:
template
{ }
Shablon funksiyasining asosiy parametrlarining xossasi.
Funksiyalar shablonlari parametrlarining asosiy xususiyatlari:
1. Parametrlar nomlari shablonning butun ta’rifi bo‘ylab unikal bo‘lmog‘i lozim.
2. Shablon parametrlarining ro‘yxati bo‘sh bo‘la olmaydi.
3. Shablon parametrlari ro‘yxatida har biri class so‘zidan boshlanadigan bir
nechta parametr bo‘lishi mumkin.
Misol:
template T max(Tx, Ty){return(x>y)? x:y;}:
bunda shablonining argumenti tomonidan taqdim etilgan ma’lumotlar
turi har qanday bo‘lishi mumkin. Undan dasturda foydalanishda kompilyator tax
funksiyasi kodini bu funksiyaga uzatilayotgan parametrlarning faktik turiga muvofiq
generatsiya qiladi:
int i;
Myclass a,b;
int i=max(i, 0);//argumentlar turi int
myclass m=max(a, b);// argumentlar turi myclass
84
Faktik turlar kompilyatsiya paytida ma’lum bo‘lishlari kerak. Shablonlarsiz max
funksiyasini ko‘p martalab ortiqcha yuklashga to‘g‘ri kelar edi, ya’ni, garchi barcha
funksiya versiyalarining kodlari bir xil bo‘lsa ham, har bir qo‘llanayotgan tur uchun
aloxida ortiqcha yuklash kerak bo‘lar edi.
Dostları ilə paylaş: