11.2 Funksiyaning prototiplari
Key Point. Funksiya prototipi funksiyani bajarilmagan holda e’lon qiladi.
Bilamizki, funksiya chaqirilishidan oldin uning bosh qismi e’lon qilingan bo`lishi kerak. Buning buning yana bir yo`li – barcha funksiyalarning chaqirilishlaridan oldin e’lonni joylashtirishdir. Boshqacha qilib aytganda, funksiya chaqirilishidan oldin uning prototipini e’lon qilish. Shuningdek, funksiya prototipi funksiya e’loni deb ham yuritiladi, ya’ni, tana qismga ega bo`lmagan bosh qism sifatida qaraladi. Funksiyaning to`liq qo`llanilishi esa, keyinroq, dasturda tarkibida beriladi.
11.2-kodli ro`yxatda funksiya prototiplaridan foydalangan holda 11.1-kodli ro`yxat (TestFunksiyaniQaytaYuklash.cpp) qayta yozilgan ko`rinishi keltirilgan. Bu kodli ro`yxatning 5-7-satrlarida max funksiyasi prototiplari e’lon qilingan. Funksiyalar esa, 27-, 36- va 45-satrlarda ishlatilgan.
11.2-kodli ro`yxat. TestFunksiyaPrototipi.cpp
1 #include
2 using namespace std;
3
4 // Funksiya prototipi
5 int max(int num1, int num2);
6 double max(double num1, double num2);
7 double max(double num1, double num2, double num3);
8
9 int main()
10 {
11 // 2 ta int turidagi parametrlar bilan max funksiyasini chaqirish
12 cout << "3 va 4 orasidagi katta son "<<
13 max(3, 4) << endl;
14
15 // 2 ta double turidagi parametrlar bilan max funksiyasini chaqirish
16 cout << "3.0 va 5.4 orasidagi katta son "
17 << max(3.0, 5.4) << endl;
18
19 // 3 ta double turidagi parametrlar bilan max funksiyasini chaqirish
20 cout << "3.0, 5.4 va 10.14 orasidagi katta son "
21 << max(3.0, 5.4, 10.14) << endl;
22
23 return 0;
24 }
25
26 // 2 ta int turidagi qiymatlar orasidan max ni qaytarish
27 int max(int num1, int num2)
28 {
29 if (num1 > num2)
30 return num1;
31 else
32 return num2;
33 }
34
35 // 2 ta double turidagi qiymatlar orasidan max ni topish
36 double max(double num1, double num2)
37 {
38 if (num1 > num2)
39 return num1;
40 else
41 return num2;
42 }
43
44 // 3 ta double turidagi qiymatlar orasidan max ni qaytarish
45 double max(double num1, double num2, double num3)
46 {
47 return max(max(num1, num2), num3);
48 }
Maslahat! Prototipda parametrlar nomlari emas, faqatgina parametrlar turlari kerakli. C++ kompilyatori parameter nomlarini inobatga olmaydi. Prototip kompilyatorga funksiya nomi, u qaytaruvchi turi, parametrlar soni va har bir parametrlarning turlari haqida ma’lumot beradi. Shuning uchun 5-7 - satrlarni quyidagilar bilan almashtirish mumkin:
int max(int, int);
double max(double, double);
double max(double, double, double);
Eslatma! Funksiyani e’lon qilish deganda uning amalga hisoblashga ega bo`lmagan, faqat bosh qismi tushunilsa, funksiyaning aniqlanishi deganda hisoblashlarni amalga oshirish orqali fuksiyani amalga oshiruvchi funksiya tanasi tushuniladi.
Do'stlaringiz bilan baham: |