Mavzuga kirish; Shablonlar nazariyasi; Misol: Umumiy toifa


Download 61.98 Kb.
bet2/9
Sana21.01.2023
Hajmi61.98 Kb.
#1107357
1   2   3   4   5   6   7   8   9
Bog'liq
2) 15- ma\'ruza matni

Shablonlar nazariyasi
Shablonlar sinflar va funksiyalarda turlarni muvofiqlashtirish imkonini taqdim etadi. Biz funksiyalarni yoki sinflarni kompilyator tomonidan aniq bir tur o`rnida qabul qilinuvchi umumiy tur bilan aniqlashimiz mumkin.
Keling, shablonlarga bo`lgan ehtiyojni ko`rsatib berish uchun, oddiy bir misoldan boshlaymiz. Faraz qilaylik, biz ikkita butun sonlar, ikkita dubl sonlar, ikkita belgilar va ikkita satrlardan kattasini topmoqchimiz. Shu kungacha o`rgangan bilimlarimiz asosida, biz quyidagicha ko`rinishdagi to`rtta ko`p yuklanuvchi funksiyalarni aniqlashimiz mumkin:

  1. int maxValue(int value1, int value2)

  2. {

  3. if (value1 > value2)

  4. return value1;

  5. else

  6. return value2;

  7. }

  8. double maxValue(double value1, double value2)

  9. {

  10. if (value1 > value2)

  11. return value1;

  12. else

  13. return value2;

  14. }

  15. char maxValue(char value1, char value2)

  16. {

  17. if (value1 > value2)

  18. return value1;

  19. else

  20. return value2;

  21. }

  22. string maxValue(string value1, string value2)

  23. {

  24. if (value1 > value2)

  25. return value1;

  26. else

  27. return value2;

  28. }

Bu funksiyalarning to`rtalasi ham ulardagi qo`llanilgan turlarning har xil ekanliklari inobatga olinmasa, deyarli bir xil. Birinchi funksiya int turini, ikkinchi funksiya double turini, uchinchi funksiya char turini va to`rtinchi funksiya string turini qo`llaydi. Agar biz quyidagicha ko`rinishda, umumiy tur bilan, bittagina, oddiy funksiyani aniqlasak, bir funksiyaning o`zida barcha turlarning saqlanib qolishi, ortiqcha bo`sh joyning paydo bo`lishi va dasturning osonlik bilan qayta sozlanishiga erishishimiz mumkin:




  1. Download 61.98 Kb.

    Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




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