O‘zbekiston respublikasi oliy va o‘rta maxsus ta’lim vazirligi tоshkеnt dаvlаt iqtisоdiyot universitеti


Download 1.96 Mb.
Pdf ko'rish
bet50/83
Sana08.11.2023
Hajmi1.96 Mb.
#1757524
1   ...   46   47   48   49   50   51   52   53   ...   83
Bog'liq
Obyektga yo`naltirilgan dasturlash tillari

Nazorat savollari: 
1. Postfiks va prefiks amallar orasida qanday farq bor? 
2. Qo‘shimcha yuklangan amallar qanday ikki usulda aniqlanadi? 
3. Global do‘stona funksiya yordamida xamma amallarni qo‘shimcha yuklash 
mumkinmi? 
4. Qaysi xolatda amalni global funksiya yordamida qo‘shimcha yuklash 
mumkin? 
5. Funksiya operator da “sinf” yoki “sinfga ilova” tipidagi parametr ishlatish 
shartmi? 
6. Unar va binar amal-funksiyalar sintaksisi farqi nimadan iborat?
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


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.

Download 1.96 Mb.

Do'stlaringiz bilan baham:
1   ...   46   47   48   49   50   51   52   53   ...   83




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling