Mavzu: Klass va funksiyalar shablonlari. Klass va funksiyalar shablonlarini dasturlash. Shablonlarning standart kutubxonasi (ShSK). ShSk-komponentalari
Mavzu: Klass va funksiyalar shablonlari. Klass va funksiyalar shablonlarini dasturlash. Shablonlarning standart kutubxonasi (ShSK). ShSK-komponentalari
Reja:
Funksiya shablonlar;
Sinf (class) shablonlar
C++ dasturlash tilida STL bilan tanishish;
Konteynerlar tushunchasi;
Iteratorlar algoritmlari tushunchasi;
.
Shablonlar (ing template) — ayrim parametrlarga (masalan: ma’lumot tiplariga, joriy qiymatlarga) bog’lamasdan umumlashgan (yoki qo’shma) algoritmlarni kodlash uchun mo’ljallangan C++ (va b.) dasturlash tillari vositasi.
Shablonlar (ing template) — ayrim parametrlarga (masalan: ma’lumot tiplariga, joriy qiymatlarga) bog’lamasdan umumlashgan (yoki qo’shma) algoritmlarni kodlash uchun mo’ljallangan C++ (va b.) dasturlash tillari vositasi.
C++ da shablon funksiya va sinflar yaratish imkoniyati mavjud.
Shablonlar parametrlashgan funksiya va sinflar yaratish imkoniyatini beradi.
Parametrlar (mavjud tiplardan tashkil topgan) ixtiyoriy qiymatlar yoki o’zgaruvchilar bo’lishi mumkin.
1)
2)
Masalan:
class Class_1{
int m1;
int A[20];
...
}; yaratilgan bo’lsin. Endi bizga 30 ta elementli massiv va haqiqiy turdan iborat sinf kerak bo’lsin
template <int m1_uzunlik, typename tip > class Class_1{ tip bizning_tip; m1 A1 [m1_uzunlik]; ... };
U holda 1- hol uchun: Class1 < 20, int > Nomi1;
2- hol uchun: Class1< 30, double > Nomi2;
Shablon funksiyalarning kamchiliklari
Birinchidan: Kompilyatorlar har bir parameterlar uchun alohida funksiya yoki sinflar ekzemplyar yaratilishi;
Ikkinchian: oddiy funksiyalarga qaraganda hatolikni topish murakkabligida;
Uchinchidan: Kompiliatsiya vaqtining oshishi, fayl hajmining oshishi (bitta shablon bir nechat faylga joriy etilgan va kompilatsiyalangan bo’lishi mumkin)