C++ da umumiy turlardan foydalangan holda, shablon funksiyalar va sinflarni aniqlashimiz mumkin
Download 52.16 Kb.
|
C da umumiy turlardan foydalangan holda, shablon funksiyalar v
- Bu sahifa navigatsiya:
- "1.5 va 0.3 ning kattasi: " " 16. 18. , N
- “NBC” va “ABC”
using namespace std;
template <typename T> T maxValue(T value1, T value2) { if (value1 > value2) return value1; else 10. return value2; 11. } 12. int main() 13. { 14. cout << "1 va 3 ning kattasi: " << maxValue(1, 3) << endl; 15. cout << "1.5 va 0.3 ning kattasi: " " 16. << maxValue (1.5, 0.3) << endl; 17. cout << "‘A’ va ‘N’ ning kattasi: " 18. << maxValue ('A', 'N') << endl; 19. cout << " \"NBC\" va \"ABC\" ning kattasi: " 20. << maxValue (string("NBC"), string("ABC")) << endl; 21. return 0; 22. } Natija:
Funksiya shablonining aniqlanishi parametrlar ro`yxati tomonidan berilgan template – kalit so`zi bilan boshlanadi. Har bir parametr dastlab o`zaro teng kuchli bo`lgan typename yoki class kalit so`zi orqali, template<typename T> maxValue uchun funksiya shablonining aniqlanishini boshlaydi. Shuningdek, bu satr prefiks shablon deb ham yuritiladi. Bu yerda T – parametr turi. Katta T harfining faqat parametr turini ifodalashda ishlatilishi kelishilgan. maxValue funksiyasi 6-12qatorlarda aniqlangan. Undan funksiya qaytaruvchi qiymat turi, funksiya parametrlari yoki funksiyada e’lon qilingan o`zgaruvchilarning turlarini aniqlashda foydalanish mumkin. Kodning 16-22-qatorlarida int, double, char va string turlari bo`yicha katta qiymatlilarni qaytarish uchun maxValue funksiyasi chaqirilgan. Funksiya maxValue(1, 3) ko`rinishda chaqirilganda, kompilyator argument turi int ekanligini aniqlaydi va funksiyani aniq int turida chaqirish uchun, T – parametr turini int ga o`zgartiradi. Funksiya maxValue(string("NBC"), string("ABC")) ko`rinishda chaqirilganda, kompilyator argument turi string ekanligini aniqlaydi va funksiyani aniq string turida chaqirish uchun, T – parametr turini string ga o`zgartiradi. Agar 22-qatorda berilgan maxValue(string("NBC"), string("ABC")) ni maxValue("NBC", "ABC") deb o`zgartirsak nima bo`ladi? Unda biz funksiya ABC ni qaytarishini ko`rish uchun “syurpriz” tayyorlagan bo`lamiz. Nima uchun? Chunki “NBC” va “ABC” lar – C-satrlardir. maxValue("NBC", "ABC") ning chaqirilishi “NBC” va “ABC” larning manzillarini funksiya parametriga uzatadi. value1 > value2 taqqoslash vaqtida ikkita massivning manzillari taqqoslanadi, tarkiblari emas. Download 52.16 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling