44. Klasslar va ulardan foydalanishга доир мисоллар келтиринг.
Shablon klasslarini o’rganish uchun ham oddiy misollardan foydalanamiz. Yuqoridagi misol uchun yozilgan funksiya kodiga massivning minimum va maksimum elementlarini qidirish funksiyasini qo’shamiz:
struct my_pointer_pair {
tip *first;
tip *second; };
Bu yerda ko’rsatkichlar turi qanday bo’ladi? Buni shablon strukturasi asosida quyidagicha tavsiflash mumkin:
template
struct my_pointer_pair {
T *first;
U *second; };
Endi kompilyator my_pointer_pair<1-tur,2-tur> uchun mos keluvchi turlarni o’zi generatsiyalaydi. Bu misoldagi ko’rsatkichlar bir xil turga tegishli bo’ladi, lekin biz strukturada ko’rsatkichlar turi har xil bo’ladigan qilib o’zgartirish ham mumkin. Bu boshqa misollar uchun foydali bo’lishi mumkin.
int main () {
my_pointer_pair obj={new int(10), new double(67.98)}; //my_pointer_pair turiga tegishli ob’ektlarni hosil qilish
std::cout<<*obj.first<<' '<<*obj.second<
delete obj.first;
delete obj.second; }
Kompilyator klass shabloni uchun turlarni avtomatik aniqlamaydi, shuning uchun ham uni mustaqil ko’rsatishimiz zarur.
45. To’g’ridan-to’g’ri o’rin almashtirish algoritmi uchun klass yozing va misol yordamida uning ishlishini tushuntirib bering.
46. Qidiruv algoritmining klasslar yordamida ifodalanishini misollar yordamida tushuntirib bering.
47. Shablonlarning standart kutubxonasi va undan dastur yozishda foydalanishga misollar keltiring?
Kompilyatorlar tarkibida shablonlar kutubxonasini taqdim etadi. (Standart Template Library). Bu kutubxona bir qancha funksiya va klass shablonlaridan tashkil topgan.
Masalan, ikki bog’lamli ro’yxat klassi (list), “juft” klassi (pair), ikki o’zgaruvchining o’rnini almashtirish funktsiyasi shabloni (swap), saralash funksiyalari, massivni dinamik kengaytirish funksiyasi (vector) va h.k. Bulardan dasturlashda to’liq foydalanishingiz mumkin.
Do'stlaringiz bilan baham: |