O. X. Azamatov


Download 1.82 Mb.
Pdf ko'rish
bet76/119
Sana09.01.2022
Hajmi1.82 Mb.
#256439
1   ...   72   73   74   75   76   77   78   79   ...   119
Bog'liq
3072-Текст статьи-7829-1-10-20200908

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.82 Mb.

Do'stlaringiz bilan baham:
1   ...   72   73   74   75   76   77   78   79   ...   119




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