10.2. Sinflar shablonlari. Sinf shablonlarning asosiy xossalari Sinf shablonlari (o‘zgacha parametrlangan sinf) avlodga oid sinfni tuzish uchun
ishlatiladi. Тuzish qoidalarni va ayrim obyektlarni formatini aniqlovchi sinf kabi, sinf
shablonlari ayrim sinflarni tuzish usullarini aniqlaydi. Shablondagi sinf ta’rifida sinf
ismi ayrim sinflarning emas oilaviy sinflarning parametrlangan ismi bo‘ladi.
Parametrlangan sinfning e’lon etish umumiy shakli:
template class imya_klassa { . . . };
Parametrlangan sinf funksiyalarining komponentalari avtomatik ravishda
parametrlangan bo‘ladi. Ularni template yordamida parametrlangan sifatida e’lon
etish shart emas.
Parametrlangan sinfda tavsiflangan do‘stona funksiyalar avtomatik ravishda
parametrlangan funksiyalar bo‘lmaydi, ya’ni ko‘rsatilmagan holda shunday
funksiyalar berilgan shablon bo‘yicha tashkil etilgan barcha sinflar uchun do‘stona
bo‘ladi.
Agarda friend-funksiya o‘z tavsifida parametrlangan sinf tipdagi parametrga ega
bo‘lsa, unda berilgan shablon bo‘yicha yaratilgan barcha sinflar uchun xususiy
friend–funksiyasi mavjud.
Parametrlangan sinf doirasida friend-shablonlarni (do‘stona parametrlangan
sinflar) tavsiflash mumkin emas.
Bir tarafdan, shablonlar shablonlardan xosil (meros) bo‘lgandek, oddiy
sinflardan ham xosil (meros) bo‘lishi mumkin. Ikkinchi tarafdan esa ulardan boshqa
shablonlar va sinflar uchun bazoviy sifatida foydalanishi mumkin.
Sinf a’zosi bo‘lgan funksiyalar shablonlarini virtual sifatida tavsiflash mumkin
emas.
85
Lokal sinflar o‘z elementlar sifatida shablonlarni o‘z ichiga olish mumkin emas.