C++ da umumiy turlardan foydalangan holda shablon funksiyalar va sinflar yaratish mumkin. Shablon funksiyalar va sinflar ko’plab turli ma’lumot turlari bilan ishlay oladi.
C++ da umumiy tur uchun dasturlash mumkin. Misol uchun, umumiy turdagi ikki sondan kattasini aniqlovchi funksiya yaratdingiz. Agar siz funksiyani int argumentlar uchun chaqirishingiz kerak bo’lsa, u holda umumiy tur int turi bilan almashitriladi. Agar siz funksiyani ikki double argumentlar uchun chaqirmoqchi bo’lsangiz, u holda umumiy tur double turi bilan almashtiriladi.
Shablonlar sinflar va funksiyalarda turlarni parametrlashtirish imkoniin beradi. Siz funksiyalar va sinflarni umumiy tur bilan aniqlay olasiz. Keyinchalik ular kompilyator tomonidan aniq bir tur bilan ishlatiladi.
Shablon tushunchasini yoritib beradigan misol qaraymiz. Tasavvur qiling, ikkita butun, ikkita haqiqiy, ikkita belgi va ikki satrlardan kattasini aniqlash kerak. Buning uchun quyidagicha qayta yuklangan 4 ta funksiya yozilishi kerak:
Shablonlar asoslari
Yuqoridagi 4 funksiya deyarli bir xil, farqi faqat turlarida. Birinchi funksiyada int, ikkinchisida double, uchinchisida char va to’rtinchisida string turlaridan foydalanilmoqda. Agar funksiya quyidagicha umumiy tur orqali yaratilsa, u holda turlar soni ko’p bo’lib ketmaydi va dastur kodi ham uzun bo’lib ketmaydi:
Bu yerda GenericType int, double, char va string turlaridan biri bo’la oladi.
Ikki qiymat > operatori yordamida taqqoslanaishi lozim
Maslahat
Shablonlardan foydalanish uchun yoki sintaksislaridan foydalanish mumkin. ko’rinishidan foydalanish maqsadga muvofiq, sababi dan foydalanishda sinf aniqlanishi bilan adashtirib qo’yish ehtimoli bor.
Eslatma!
Shablon funksiyada birdan ortiq parametrlar bo’lishi mumkin. Bu holatda, parametrlar qavs ichida vergul bilan ajratilib yoziladi:
.
Listing 12.2 GNVPassByReference.cpp
Natija
Misol: Umumiy saralash
Bu listingda double turidagi massivni tanlash usuli orqali saralash qaralgan.