Sinf shablonlari (о‘zgacha parametrlangan sinf) avlodga oid sinfni tuzish uchun ishlatiladi. Tuzish 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 bо‘ladi.
Parametrlangan sinfning e’lon etish umumiy shakli:
template class imya_klassa { . . . };
Sinf shablonlarning asosiy xossalari
Parametrlangan sinf funksiyalarining komponentalari avtomatik ravishda parametrlangan bо‘ladi. Ularni template yordamida parametrlangan sifatida e’lon etish shart emas.
Parametrlangan sinfda tavsiflangan dо‘stona funksiyalar avtomatik ravishda parametrlangan funksiyalar bо‘lmaydi, ya’ni kо‘rsatilmagan xolda shunday funksiyalar berilgan shablon bо‘yicha tashkil etilgan barcha sinflar uchun dо‘stona bо‘ladi.
Agarda friend-funksiya о‘z tavsifida parametrlangan sinf tipdagi parametrga ega bо‘lsa, unda berilgan shablon bо‘yicha yaratilgan barcha sinflar uchun xususiy friend–funksiyasi mavjud.
Parametrlangan sinf doirasida friend-shablonlarni (dо‘stona parametrlangan sinflar) tavsiflash mumkin emas.
Bir tarafdan, shablonlar shablonlardan xosil (meros) bо‘lgandek, oddiy sinflardan xam xosil (meros) bо‘lishi mumkin. Ikkinchi tarafdan esa ulardan boshqa shablonlar va sinflar uchun bazoviy sifatida foydalanishi mumkin.
Sinf a’zosi bо‘lgan funksiyalar shablonlarini virtual sifatida tavsiflash mumkin emas.
Lokal sinflar о‘z elementlar sifatida shablonlarni о‘z ichiga olish mumkin emas.
Parametrlangan sinflarning komponent funksiyalari
Sinf shablonining tavsifidan tashqarida joylashgan sinf shablonining komponentli funksiyasini amalda oshirishda quyidagi ikkita elementni qо‘shimcha kiritish lozim:
Tavsiflash template kalitli sо‘zdan boshlanishi lozim, undan sо‘ng burchakli qavislarda sinf shablonni tavsifida kо‘rsatilgan tiplar_parametrlarining_ruyxati keladi.
Kо‘rish soxasi operatsiyasidan (::) oldinda bо‘lgan sinf ismidan sо‘ng shablonning parametrlar_ismlari_rо‘yxati kelishi lozim.
Do'stlaringiz bilan baham: |