C++ da umumiy turlardan foydalangan holda, shablon funksiyalar va sinflarni aniqlashimiz mumkin


Umumiy funksiyaning boshqacha ko’rinishi


Download 52.16 Kb.
bet8/10
Sana19.11.2023
Hajmi52.16 Kb.
#1786539
1   2   3   4   5   6   7   8   9   10
Bog'liq
C da umumiy turlardan foydalangan holda, shablon funksiyalar v

Umumiy funksiyaning boshqacha ko’rinishi.
Quyidagi misolda swapargs funksiyasi boshqacharoq ko'rinishda e'lon qilingan. Ya'ni shablon birinchi satrda funksiya esa alohida satrda joylashgan.

  1. template

  2. void swapargs(X &a, X &b)

  3. {

  4. X temp;

  5. temp = a;

  6. a = b;

  7. b = temp;

  8. }

Lekin bu ko'rinishda birinchi va ikkinchi satr o'rniga bironta kod yozilsa xatolik beradi.

  1. template

  2. int c // ERROR

  3. void swapargs(X &a, X &b)

  4. {

  5. X temp;

  6. temp = a;

  7. a = b;

  8. b = temp;

  9. }

Funksiya shablonini override (qayta yozish) qilish.

  1. template void swapargs(X &a, X &b)

  2. {

  3. X temp;

  4. temp = a;

  5. a = b;

  6. b = temp;

  7. cout << "swapargs funksiya shabloni chaqirildi.\n";

  8. }

  9. // Bunda swapargs() funksiyasi faqatgina int tipi uchun ishlaydi.

10. void swapargs(int &a, int &b)
11. {
12. int temp;
13. temp = a;
14. a = b;
15. b = temp;
16. cout << " int tipi uchun maxsus swapargs funksiyasi.\n";
17. }
18. int main()
19. {
20. int i=10, j=20;
21. double x=10.1, y=23.3;
22. char a='x', b='z';
23. cout << "Original i, j: " << i << ' ' << j << '\n';
24. cout << "Original x, y: " << x << ' ' << y << '\n';
25. cout << "Original a, b: " << a << ' ' << b << '\n';
26. swapargs(i, j); // calls explicitly overloaded swapargs()
27. swapargs(x, y); // calls generic swapargs()
28. swapargs(a, b); // calls generic swapargs()
29. cout << "Swapped i, j: " << i << ' ' << j << '\n';
30. cout << "Swapped x, y: " << x << ' ' << y << '\n';
31. cout << "Swapped a, b: " << a << ' ' << b << '\n';
32. return 0;
33. }
Dastur natijasi:
Original i, j: 10 20
Original x, y: 10.1 23.3
Original a, b: x z
int tipi uchun maxsus swapargs funksiyasi.
swapargs funksiya shabloni chaqirildi.
swapargs funksiya shabloni chaqirildi.
Swapped i, j: 20 10
Swapped x, y: 23.3 10.1
Swapped a, b: z x

Download 52.16 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling