Mavzu: Bir nechta turlardan foydalaniladigan shablonlar. Shablonlar va bir necha turlar



Download 273,16 Kb.
Sana31.05.2023
Hajmi273,16 Kb.
#946793
Bog'liq
obyekt

Mavzu:Bir nechta turlardan foydalaniladigan shablonlar. Shablonlar va bir necha turlar.

REJA:

1.Funksiyalar shablonlari;

2. Sinflar shablonlari;

3. Bir nechta turdan foydalanuvchi shablonlar;

4. Parametrlangan sinflarning komponent funksiyalari;

Funksiya uchun shablon turi.


Funksiya shabloni (parametrlangan turlar) bog’langan funksiyalar
oilasini tuzish imkonini beradi. Shablon kiritilishi uchun, hosil qilingan
funksiyani avtomatlashtirish, har xil tipli ma‘lumotlarni qayta ishlashdan iborat.
Masalan, algoritm tartiblash uchun har qaysi funksiyani o’zini
aniqlovchi tipi qo’llaniladi. Funksiya shabloni bir marta aniqlanadi,
lekin parametrli aniqlashda va hokazo, ma‘lumotlar tipi shablon
parametrlari orqali beriladi.
Shablon formati:
template

{ }
Funksiyalar shablonlari parametrlarining asosiy xususiyatlari:
1. Parametrlar nomlari shablonning butun ta‘rifi bo’ylab unikal bo’lmog’i lozim.
2. Shablon parametrlarining ro’yxati bo’sh bo’la olmaydi.
3. Shablon parametrlari ro’yxatida har biri class so’zidan
boshlanadigan bir nechta parametr bo’lishi mumkin.
Sinflar shablonlari
Sinf shablonlari (o’zgacha parametrlangan sinf) avlodga oid sinfni
tuzish uchun ishlatiladi. Tuzish qoidalarni va ayrim ob‘yektlarni formatini aniqlovchi sinf kabi, sinf shablonlari ayrim sinflarni tuzish
usullarini aniqlaydi. Shablondagi sinf ta‘rifida sinf ismi ayrim sinflarning emas oilaviy sinflarning parametrlangan ismi bo’ladi.
Parametrlangan sinfni e‘lon etishning umumiy shakli:
template class sinf_nomi { . . . };
Sinf ob‘yektlari bilan ishlash uchun vector qo’shimcha yuklangan
shablon sinfi:
template class vector { T *data;
int size;
public:
array(int k) {size =k; data = new T[size]};
T& operator[](int i){
return data[i]; }
int size() { return size; }
~array () { delete []data; }
void input_ vector ();
void show_ vector (); };
template void vector :: input_array() {
for (int i = 0; i < index; i++) {
cin>>data[i] ;
cout << “ ;} }
template void vector :: show_array() {
for (int i = 0; i < index; i++)
cout << data[i] << ; “ }
Oddiy shablonni pufaksimon algoritm orqali tartiblashni shunday aniqlash mumkin.
template void bubble_sort(Vector& v)
{ unsigned n = v.size();
for (int i=0; i
for (int j=n-1; i
if (v[j] < v[j-1])
{ // v[j] va v[j-1] o’rnini almashtiramiz
T temp = v[j];
v[j] = v[j-1];
v[j-1] = temp; } }
Vector tipini qismiga tenglik funksiyasini berish mumkin emas, balki unga ikkinchi parametr sort() funksiyasini berish kerak. Bu parametr qaysiki tenglik operatsiyasini qayta aniqlashda ob‘yekt sinfini ifodalaydi.
template
void bubble_sort(Vector& v, Compare & cmp){
unsigned n = v.size();
for (int i = 0; i
for ( int j = n-1; i
if (cmp.lessthan(v[j],v[j-1])) {
T temp = v[j];
v[j] = v[j-1];
v[j-1] = temp; } }
for_each() algoritm yordamida har xil ko’rinishdagi qayta ishlashni
va har bir elementni modifikatsiyasini ko’rish mumkin.
Template
void for_each(vector a, function op){
for( int i=0; i
op(a[i]); }
for_each() algoritmining qo‗llanilishi:
# include
class StudentPrint {
public:
void operator() (Student elem){
if (elem.rating>5) elem.print();
}};
main() {
vector coll(5);
coll.input();
StudentPrint cmp;
for_each(coll, cmp); }

E’TIBORINGIZ UCHUN RAHMAT!

1-4PMI.19 guruh talabasi

Mirzoyeva Surayyo.


Download 273,16 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish