C++ shablonlar (templates)


ULASHISH

C++ shablonlar (templates)

Shablonlar turli ma’lumot tiplari bilan ishlaydigan funksiya yoki sinf yozish imkonini beradi.

Ular kod takrorlanishining oldini olishga yordam beradi va dasturlarni moslashuvchanroq qiladi.


C++ funksiya shablonlari

template kalit so‘zi yordamida funksiya shablonini yaratishingiz mumkin:

Sintaksis

template <typename T>
return_type function_name(T parameter) {
  // code
}
  • T — ma’lumot tipi (masalan, int, float va h.k.) uchun o‘rinbosar (placeholder).
  • T o‘rniga istalgan nomdan foydalanishingiz mumkin, lekin odatda T ishlatiladi.

Misol

template <typename T> T add(T a, T b) {   return a + b; } int main() {   cout << add<int>(5, 3) << "\n";   cout << add<double>(2.5, 1.5) << "\n";   return 0; }
O‘zingiz sinab ko‘ring »

Yuqoridagi misolda add<int>(5, 3) kompilyatorga T o‘rniga int ishlatishni, add<double>(2.5, 1.5) esa double ishlatishni bildiradi.


C++ sinf shablonlari

Shablonlar yordamida istalgan ma’lumot tipi bilan ishlaydigan sinflar ham yaratishingiz mumkin:

Sintaksis

template <typename T>
class ClassName {
  // members and methods using T
};

Quyidagi misolda istalgan ma’lumot tipidagi qiymatni saqlay va ko‘rsata oladigan Box shablon sinfi aniqlanadi, so‘ng bitta "quti" int uchun, yana bittasi string uchun yaratiladi:

Misol

template <typename T> class Box {   public:     T value;     Box(T v) {       value = v;     }     void show() {       cout << "Value: " << value << "\n";     } }; int main() {   Box<int> intBox(50);   Box<string> strBox("Hello");   intBox.show();   strBox.show();   return 0; }
O‘zingiz sinab ko‘ring »

Bu misolda esa turli tipdagi ikkita qiymatni saqlaydigan va ularni ko‘rsatadigan Pair shablon sinfi aniqlanadi, so‘ng bitta juftlik odamning ismi va yoshi uchun, yana bittasi ID va ball uchun yaratiladi:

Misol

template <typename T1, typename T2> class Pair {   public:     T1 first;     T2 second;     Pair(T1 a, T2 b) {       first = a;       second = b;     }     void display() {       cout << "First: " << first << ", Second: " << second << "\n";     } }; int main() {   Pair<string, int> person("John", 30);   Pair<int, double> score(51, 9.5);   person.display();   score.display();   return 0; }
O‘zingiz sinab ko‘ring »


Nima uchun shablonlardan foydalaniladi?

Shablonlar quyidagilarga imkon beradi:

  • Turli tiplar uchun bir xil mantiqni takrorlamaslik
  • Tozaroq, qayta foydalaniladigan kod yozish
  • Umumlashgan dasturlashni (generic programming) qo‘llab-quvvatlash

Eslatma: Shablonlar ular ishlatiladigan faylning o‘zida (odatda .h faylida) aniqlanishi kerak.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!