16-ma’ruza. Obyektga yo’naltirilgan dasturlashda parametrlash. Amallarni qayta yuklash. Funksiya shablonlari va ulardan foydalanish



Yüklə 103,92 Kb.
səhifə3/7
tarix14.03.2023
ölçüsü103,92 Kb.
#87765
1   2   3   4   5   6   7
3 -listing
template // funksiya shablonining parametr e’loni
T max1(T a, T b)
{
return (a > b) ? a : b;
}

Agar shablon parametrlarining bir nechta turlari kerak boʻlsa, ular vergul bilan ajratiladi:


template
Agar bir nechta parametrlar mavjud boʻlsa, ular odatda T1, T2 yoki boshqa harflar bilan nomlanadi: T, S.
Eslatma: T turiga oʻtkaziladigan funksiya argumen-tining turi sinf boʻlishi mumkinligi sababli va sinflar odatda qiymat boʻyicha oʻtkazilishi tavsiya etilmaganligi sababli, funksiya shabloni parametrlari va qaytish qiymatini doimiy havolalar qilish yaxshiroqdir (4-listing)
4-listing
template
const T& max(const T& a, const T& b)
{
return (a > b) ? a : b;
}
Funksiya shablonlaridan foydalanish. Funksiya shablonlaridan foydalanish oddiy funksiyalardan foydalanishga oʻxshaydi (3.119-listing).
3.119-listing
#include
using namespace std;
template
const T& max(const T& a, const T& b)
{
return (a > b) ? a : b;
}
int main()
{
int i = max(4, 8);
cout << i << '\n';
double d = max(7.56, 21.434);
cout << d << '\n';
char ch = max('b', '9');
cout << ch << '\n';
return 0;
}
Natija:
8
21.434
b
Funksiya shabloni nusxalari. C++ tili funksiya shablonlarini toʻgʻridan-toʻgʻri kompilyatsiya qilmaydi. Bu holatni amalda koʻrib chiqaylik. Birinchidan, funksiya shablonini yaratamiz (3.120-listing)
3.120-listing
template // funksiya shablonining parametr e’loni
const T& max(const T& a, const T& b)
{
return (a > b) ? a : b;
}
Keyin funksiya shablonini chaqiramiz:
int i = max (4, 8); // max (int, int) chaqiriladi
Kompilyator ikkala raqam ham butun son ekanligini koʻradi, shuning uchun u funksiya shablonini koʻchiradi va max(int, int) shablonini yaratadi:
const int& max(const int &a, const int &b)
{
return (a > b) ? a : b;
}
Bu endi “oddiy funksiya”. Aytaylik, boshqa ma’lumotlar turi bilan max() funksiyasini qayta chaqirish kerak boʻlsa:
double d = max(7.58, 19.378); // max(double, double) chaqiriladi
C++ tili avtomatik ravishda shablonning max (double, double) nusxasini yaratadi:
const double& max(const double &a, const double &b)
{
return (a > b) ? a : b;
}
Shuni ham ta'kidlash joizki, agar funksiya shabloni yaratilsa, lekin nusxani chaqirilmasa, u shablon yaratilmaydi.

Yüklə 103,92 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin