Funksiya prototiplari. Ko`pgina ichki qurilgan funksiyalarning prototiplari dasturga #include kalit so`zi yordamida qo`shiladigan fayl-sarlavhasida yoziladi. Foydalanuvchi tomonidan tuziladigan funksiyalar uchun esa ularning mos prototiplarini dasturga qo`shish dasturchi tomonidan bajarilishi lozim.
Funksiyaning prototipi nuqtali vergul orqali tugaydigan funksiyani qaytaradigan qiymati va signaturasidan iborat. Funksiyani signaturasi deb uning nomi va parametrlar ro`yxati tushiniladi.
Parametr tipi Parametrnomi
Qaytaradigan tipi Funksiyanomi
unsigned short int FindArea ( int length, int width ) ;
Funksiya prototipining tarkibiy qismlari
Nuqtali vergul
C++ algoritmik tilining takrorlash operatorlari.
Formal parametrlar ro`yxati barcha parametrlar va ularning tiplarini ifodalaydi. Funksiya prototipining tarkibiy qismlari yuqoridagi rasmda ko`rsatilgan.
Funksiyaning prototipi hamda aniqlanishidagi uning qaytaradigan qiymati tipi va signaturasi mos bo`lishi lozim. Agarda bunday mutanosiblik bo`lmasa kompilyator xatolik haqida xabar beradi. Funksiya prototipida parametr nomlarisiz tiplarni ko`rsatilishi yetarlidir. Masalan, quyida keltirilgan misol to`g`ri:
long Area(int, int)
Bu prototip ikkita butun sonli parametrni qabul qilib, long tipidagi qiymat qaytaradigan Area() nomli funksiyani e`lon qiladi. Prototipning bunday yozilishi unchalik yaxshi variant emas. Prototipga parametrlarning nomlarini qo`shilishi uni tushunarliroq bo`lishini ta`minlaydi.
Har bir funksiyaning qaytaradigan qiymati tipi aniqlangan bo`ladi. Agarda u ochiq aniqlanmagan bo`lsa avtomatik ravishda int tipini qabul qiladi.
16–misol. Funksiyani e`lon qilinishi, aniqlanishi va ishlatilishi.
//16–Misol.Funksiyaprototipiniqo`llanlishi # include using namespace std;
//funksiya prototipi
int Yuza(int uzunlik, int kenglik); int main()
{
int YerUzunligi, int YerKengligi, int YerMaydoni;
cout<< “\n Yerning uzunligi necha metr?\n”; cin >> YerUzunligi;
cout<< “\n Yerning kengligi necha metr?”; cin >> YerKengligi; YerMaydoni=Yuza(YerUzunligi,YerKengligi); cout << “\n Yer maydoni yuzasi ”;
cout >>YerMaydoni;
cout << “kvadrat metr\ n \ n”; return 0;
}
int Yuza(int YerUzunligi, int YerKengligi)
{
return YerUzunligi* YerKengligi
}
NATIJA