Samarqand agroinnovatsiyalar va tadqiqotlar instituti iqtisodiyot va boshqasruv fakulteti axborot tizimlari va texnologiyalari yo




Download 28,21 Kb.
bet2/4
Sana18.05.2024
Hajmi28,21 Kb.
#241603
1   2   3   4
Bog'liq
Roziqova

template <class Num>
Num sqr(Num x)
{
return x * x;
}
Tempet Temolie Vazifa yoki turdagi "bo'sh" ni ishga tushirish bilan tanishtiradi. Aslida, shablon uning barcha parametrlarining haqiqiy qiymatlari o'rnatilgunga qadar funktsiya yoki turi emas. Andoza parametrlarini almashtirish uchun ularni "burchak qavslari" ga ("kamroq" belgilariga ("kamroq" belgilariga olib boradigan va "kamroq" belgilariga olib borishi kerak. .
Ushbu lahzada kompilyator shablon parametrlarining ismlari o'rniga funktsiyaning parametrlarining ismlari o'rniga funktsiyaning parametrlari yoki o'ziga xos funktsiya yoki sinfning o'ziga xos amalga oshirilishini bildiradi, deb taxmin qilish mumkin.
auto a = sqr(10); // Num = int
// a имеет тип int и значение 100
auto f = sqr(2.5f); // Num = float
// f имеет тип float и значение 6.25f
Funktsiya funktsiyasining parametrlari funktsiyaning o'zi parametrlaridan olinishi mumkin bo'lsa, ular ko'rsatilishi mumkin emas:
auto a = sqr(10); // 10 имеет тип int, поэтому Num = int
// a имеет тип int и значение 100
auto f = sqr(2.5f); // 2.5f имеет тип float, поэтому Num = float
// f имеет тип float и значение 6.25f
Funktsiya funktsiyasining parametrlari funktsiyaning o'zi parametrlaridan olinishi mumkin bo'lsa, ular ko'rsatilishi mumkin emas:
template <class First, class Second = First>
struct Pair // Пара значений типов First и Second.
{
First first;
Second second;

// Конструктор: First() и Second() -- вызовы конструкторов по умолчанию
// для типов First и Second соответственно (определены и для встроенных типов).
Pair(const First &first = First(), const Second &second = Second())
: first(first), second(second) /* список инициализации:
вызов конструкторов копирования для обоих полей */
{}
};
// Пара чисел с плавающей точкой.
Pair p2(1, 2); // First = double, Second = First = double
assert(p2.first == 1. && p2.second == 2.);


// Пара "целое, строка".
Pair ids; // First = size_t, Second = string;
ids.first = 23;
ids.second = "23 is the new 42";
Vazifalar va sinflar shablonlariga qo'shimcha ravishda C ++ (C ++ 11 bilan boshlanadi), u Sinonyams shablonlari shablonlarini e'lon qilish imkoniyatini beradi. Kerakli parametrlarni belgilash qobiliyati bilan bir-sharam uchun qisqa ism yozing.

Download 28,21 Kb.
1   2   3   4




Download 28,21 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Samarqand agroinnovatsiyalar va tadqiqotlar instituti iqtisodiyot va boshqasruv fakulteti axborot tizimlari va texnologiyalari yo

Download 28,21 Kb.