template TOIFA> class sinf_nomi { ... } Yoki quyidagi ko’rinishda e’lon qilish mumkin
Sinf shablonini ishlatish
sinf_nomi obyekt;
#include using namespace std; template class mypair {
T a, b; public:
mypair (T first, T second)
{a=first; b=second;} T getmax ();
};
template T mypair::getmax ()
{
T retval;
retval = a>b? a : b; return retval;
}
int main () {
mypair myobject (100, 75); cout << myobject.getmax(); return 0;
}
Sinf shabloni uchun oddiy misol.
Sinf shablonida ikki xil toifadan foydalanish
#include using namespace std;
template class myclass
{
Type1 i; Type2 j; public:
myclass(Type1 a, Type2 b) { i = a; j = b; } void show() { cout << i << ' ' << j << '\n'; }
};
int main()
{
template class myclass { T x;
public:
myclass(T a) {
cout << "Inside generic myclass\n"; x = a;
}
T getx() { return x; }
};
// int toifasi uchun maxsuslashtirilgan sinf shabloni. template <> class myclass { int x;
public:
myclass(int a) {
cout << "Inside myclass specialization\n"; x = a * a;
}
int getx() { return x; }
};
template<> konstruktori maxsusashtirilgan sinf shabloni uchun ishlatiladi
Shablonning asosiy xususiyatlari
reusable kod yozish imkonini beradi.
Shablonlar yordamida framework lar yaratish mumkin
Dastur kodi egiluvchanlik xususiyatiga ega bo’ladi.
Turli xil tipdagi ma’lumotlar ustida ishlash uchun kod yozishda vaqtni tejash
C++ dagi STL lar (Standard Shablon Kutubxonalar), nomidan ko’rinib turibdiki, shablonlar yordamida yaratilgan
Topshriqlar
4. Show_array funksiyasi shablonidan foydalanib massiv elementlarini chiqarish.
5. Ma’lum bir ishni bajaruvchi bitta va bir nechta konstruktordan iborat sinflar yaratish va ularni qo’llashga doir misollar