C++ shablonlar (templates)
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,floatva h.k.) uchun o‘rinbosar (placeholder).To‘rniga istalgan nomdan foydalanishingiz mumkin, lekin odatdaTishlatiladi.
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!
