Kompyuter injiniringi” fakulteti 713-21-guruh talabasi Madaminova Azizaxon Xabibullo qizining



Yüklə 60,84 Kb.
səhifə3/10
tarix30.01.2023
ölçüsü60,84 Kb.
#81789
1   2   3   4   5   6   7   8   9   10
MADAMINOVA AZIZA 713-21 LOYIHA ishi DASTURLASH

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.

Yüklə 60,84 Kb.

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




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