Shablonlar tushunchasi Hafta: 6 Ma’ruza: 6


Download 466.66 Kb.
Sana16.12.2020
Hajmi466.66 Kb.
#168791
Bog'liq
Leksiya 6

Shablonlar tushunchasi

Hafta: 6

Ma’ruza: 6

Maqsad

  • Shablonlarning foydali jihatlarini bilib olish
  • Tur parametrlari bilan shablon funksiyalarni aniqlash
  • Shablonlardan foydalangan holda umumiy saralash funksiyasini yaratish

Kirish

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 asoslari

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.

Listing 12.1 GenericMaxValue.cpp

Natija

Ogohlantirish!

Umumiy maxValue funksiyasi ixtiyoriy tur uchun ishlaydi, faqat quyidagi shart ta’minlaanishi lozim:

  • Ikkita qiymat ham bir xil turda bo’lishi shart
  • 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.

Listing 12.3 GenericSort.cpp

Natija

Sinf shablonlari

Siz sinf uchun umumiy turlarni aniqlashingiz mumkin.

Sinf qayerda tur sifatida paydo bo’lsa, o’sha yerda parametrlar turlaridan foydalanish mumkin.

Shablon sinflar

Xulosalar

  • Shablonlar funksiyalar va sinflarda turlarni parametrlashtirish imkonini oshiradi.
  • Funksiyalar yoki sinflar uchun

Download 466.66 Kb.

Do'stlaringiz bilan baham:




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