Skip to content

Shablonlar (Templates)

C++ Shablonlari

Shablonlar turli ma'lumot turlari bilan ishlaydigan funksiya yoki sinf yozish imkonini beradi.

Ular kodni takrorlashdan qochishga yordam beradi va dasturlarni moslashuvchan qiladi.


C++ Funksiya shablonlari

template kalit so'zidan foydalanib funksiya shabloni yaratish mumkin:

SINTAKSIS

cpp
template <typename T>
return_type function_name(T parameter) {
  // kod
}
  • T ma'lumot turi uchun o'rinbosar (masalan, int, float va boshqalar)
  • T o'rniga boshqa nom ham ishlatish mumkin, lekin T keng tarqalgan

MISOL

cpp
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;
}

Yuqoridagi misolda add<int>(5, 3) kompilyatorga T uchun int ishlatishni aytadi, add<double>(2.5, 1.5) esa double ishlatishni aytadi.


C++ Sinf shablonlari

Shablonlardan har qanday ma'lumot turi bilan ishlaydigan sinflar yaratish uchun ham foydalanish mumkin:

SINTAKSIS

cpp
template <typename T>
class ClassName {
  // T ishlatadigan a'zolar va metodlar
};

Quyidagi misol har qanday ma'lumot turining qiymatini saqlash va ko'rsatish mumkin bo'lgan Box shablon sinfini belgilaydi:

MISOL

cpp
template <typename T>
class Box {
  public:
    T value;
    Box(T v) {
      value = v;
    }
    void show() {
      cout << "Qiymat: " << value << "\n";
    }
};

int main() {
  Box<int> intBox(50);
  Box<string> strBox("Salom");

  intBox.show();
  strBox.show();
  return 0;
}

Bu misol esa turli turdagi ikkita qiymatni saqlaydigan Pair shablon sinfini belgilaydi:

MISOL

cpp
template <typename T1, typename T2>
class Pair {
  public:
    T1 first;
    T2 second;

    Pair(T1 a, T2 b) {
      first = a;
      second = b;
    }

    void display() {
      cout << "Birinchi: " << first << ", Ikkinchi: " << second << "\n";
    }
};

int main() {
  Pair<string, int> person("John", 30);
  Pair<int, double> score(51, 9.5);

  person.display();
  score.display();

  return 0;
}

Nima uchun shablonlar ishlatiladi?

Shablonlar sizga quyidagilarni beradi:

  • Turli turlar uchun bir xil mantiqni takrorlamaslik
  • Toza va qayta ishlatiladigan kod yozish
  • Umumiy dasturlashni (generic programming) qo'llab-quvvatlash

ESLATMA

Shablonlar ishlatilgan joyda aniqlanishi kerak (odatda .h faylda).