Mavzu: Shablon funksiyalar yaratish va ulardan foydalanish



Yüklə 17,05 Kb.
səhifə2/4
tarix13.12.2023
ölçüsü17,05 Kb.
#175250
1   2   3   4
Mavzu Shablon funksiyalar yaratish va ulardan foydalanish-fayllar.org

template< typename T >
T min( T a, T b )
{
return a < b ? a : b;
}
Ushbu funktsiyani chaqirish uchun siz shunchaki uning nomidan foydalanishingiz mumkin:
min( 1, 2 );
min( 'a', 'b' );
min( string( "abc" ), string( "cde" ) );
Shablon funksiyasini chaqirish
Umuman olganda, shablon funksiyasini chaqirish uchun siz barcha shablon parametrlari uchun qiymatlarni kiritishingiz kerak. Buni amalga oshirish uchun shablon nomidan keyin burchakli qavslardagi qiymatlar ro'yxati ko'rsatiladi:
int i[] = { 5, 4, 3, 2, 1 };

sort(i, 5);


char c[] = "бвгда";

sort( c, strlen( c ) );


sort< int >(c, 5); // ошибка: у sort параметр int[], а не char[]

char *ReadString = read<20>();



delete[] ReadString;
ReadString = read<30>();
Har bir variant to'plami uchun kompilyator funksiyaning yangi nusxasini yaratadi. Yangi namuna yaratish jarayoni shablonni yaratish deb ataladi.

Yuqoridagi misolda kompilyator tartiblash funksiyasi shablonining ikkita ixtisoslashuvini (char va int turlari uchun) va ikkita o'qish shablonining ixtisoslashuvini (BufferSize 20 va 30 qiymatlari uchun) yaratdi. Ikkinchisi behuda bo'lishi mumkin, chunki parametrning har bir mumkin bo'lgan qiymati uchun kompilyator faqat bitta konstanta bilan farq qiladigan ko'proq va ko'proq yangi funktsiyalar namunalarini yaratadi.


Parametr qiymatlarini chiqarish
Ba'zi hollarda kompilyator funktsiya argumentidan funksiya shablon parametrining qiymatini xulosa qilishi (mantiqiy aniqlashi) mumkin. Masalan, yuqorida tavsiflangan tartiblash funksiyasini chaqirganda, shablon parametrini ko'rsatish shart emas (agar u massiv argumentining element turiga mos kelsa):
int i[5] = { 5, 4, 3, 2, 1};
tartiblash (i, 5); // qo'ng'iroqlarni tartiblash
char c[] = "bvgda";
sort( c, strlen( c ) ); // qo'ng'iroqlarni tartiblash
Olib tashlash yanada murakkab holatlarda ham mumkin.
Butun sonli parametrlarga ega sinf shablonlaridan foydalanilganda, bu parametrlar haqida xulosa chiqarish ham mumkin. Masalan:

Yüklə 17,05 Kb.

Dostları ilə paylaş:
1   2   3   4




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