250
Yuqoridagi
foo
funksiyamizning ismi, () qavslar ichidagi parametrlar – int
tipidagi k va t lar kirish argumentlaridir, ular faqat ushbu funksiya ichida ko`rinadi
va qo`llaniladi. Bunday o`zgaruvchilar
loka
l(local-mahalliy) deyiladi.
result foo()
ning ichida e`lon qilinganligi uchun u ham lokaldir. Demak, biz funksiya ichida
o`zgaruvchilarni va sinflarni (class) e`lon qilishimiz mumkin ekan. Lekin funksiya
ichida boshqa funksiyani e`lon qilib bo`lmaydi. foo() funksiyamiz qiymat ham
qaytaradi. Qaytish qiymatining tipi foo() ning e`lonida eng boshida kelgan - int
tipiga ega. Biz funksiyadan qaytarmoqchi bo`lgan qiymatning tipi ham funksiya
e`lon qilgan qaytish qiymati tipiga mos kelishi kerak - ayni o`sha tipda bo`lishi
yoki o`sha tipga keltirilishi mumkin bo`lgan tipga ega bo`lishi shart. Funksiyadan
qiymatni return ifodasi bilan qaytaramiz. Agar funksiya hech narsa qaytarmasa
e`londa void tipini yozamiz. Yani:
void funk(){
int g = 10;
cout << g;
return;}
Bu funksiya void (bo`sh, hech narsasiz) tipidagi qiymatni qaytaradi.
Boshqacha qilib aytganda, qaytargan qiymati bo`sh to`plamdir. Lekin funksiya
hech narsa qaytarmaydi deya olmaymiz. Chunki hech narsa qaytarmaydigan
maxsus funksiyalar ham bor. Ularning qaytish qiymati belgilanadigan joyga hech
narsa yozilmaydi. Biz unday funksiyalarni keyinroq ko`rib chiqamiz. Bu yerda bir
nuqta shuki, agar funksiya maxsus bo`lmasa, Lekin oldida qaytish qiymati tipi
ko`rsatilmagan bo`lsa, qaytish qiymati int tipiga ega deb qabul qilinadi.
Void
qaytish tipli funksiyalardan chiqish uchun
return;
deb yozsak
yetarlidir.Yoki returnni qoldirib ketsak ham bo`ladi. Funksiyaning qismlari
bajaradigan vazifasiga ko`ra turlicha nomlanadi. Yuqorida ko`rib chiqqanimiz
funksiya aniqlanishi (function definition) deyiladi, chunki biz bunda funksiyaning
bajaradigan amallarini funksiya nomidan keyin,{} qavslar ichida aniqlab yozib
chiqyapmiz. Funksiya aniqlanishida {} qavslardan oldin nuqta-vergul [;] qo`yish
xatodir. Bundan tashqari funksiya e`loni, prototipi yoki deklaratsiyasi (