Funksiya shablonini Override qilish yangi usuli:
template<> void swapargs(int &a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
cout << " int tipi uchun maxsus swapargs funksiyasi.\n";
}
Funksiya shablonini overload qilish:
// Oddiy funksiyalardek, funksiya shablonini ham overload qilish mumkin.
#include
using namespace std;
// f() funksiya shablonining birinchi turi.
template void f(X a)
{
cout << "Inside f(X a)\n";
}
// f() funksiya shablonining ikkinchi turi.
template void f(X a, Y b)
10. {
11. cout << "Inside f(X a, Y b)\n";
12. }
13. int main()
14. Original i, j: 10 20
15. Original x, y: 10.1 23.3
16. Original a, b: x z
17. int tipi uchun maxsus swapargs funksiyasi.
18. swapargs funksiya shabloni chaqirildi.
19. swapargs funksiya shabloni chaqirildi.
20. Swapped i, j: 20 10
21. Swapped x, y: 23.3 10.1
22. Swapped a, b: z x
23. {
24. f(10); // calls f(X)
25. f(10, 20); // calls f(X, Y)
26. return 0;
27. }
Funksiya shablonining kamchiligi:
• Umumiy funksiyalar funksiya overloadining o'rnini bosishi mumkin. Lekin bu yerda bitta kamchilik mavjud. Biz oddiy funksiyani overload qilganimizda, har xil ma'lumotlar tipi uchun funksiya tanasini har xil qilib yozishimiz mumkin. Lekin umumiy funksiyada har xil tip qabul qila olgani bilan funksiya tanasi har doim bir xil bo'ladi, chunki bitta funksiyaga murojaat bo'ladi.
• Faqatgina ma’lumotlar tipi har xil bo‟la oladi.
Sinf shablonlari (class template)
Sinf shablonini ishlatish
Do'stlaringiz bilan baham: |