Функсия чист
Дар C++ барномаро аз қисмҳои хурди мустақил – функсияҳо – мешиносанд. Ҳамаи барномаҳои мо то ҳол танҳо як функсия – main() – доштанд. Аммо барнома метавонад аз якчанд функсия иборат бошад.
Функсия мисли зербарнома аст: порчаи барнома бо ном, ки онро аз ҷойҳои гуногун даъват кардан мумкин аст. Он ба барнома чунин фоида меорад:
- як бор менависем, борҳо истифода мебарем;
- барнома кӯтоҳ ва хонданаш осон мешавад;
- хатоҳоро дар як ҷой ислоҳ мекунем.
Операторҳое, ки дар { } меоянд, тани функсия ном доранд. Иҷрои функсия бо оператори return ё бо қавси пӯшидаи } тамом мешавад.
Мисоли 1: суммаи ду адад
Суммаи ду адади бутуни a ва b-ро бо функсияи summa() ҳисоб мекунем.
Натиҷа:
Сатри int summa(int a, int b); – прототип (тавсифи функсия): компилятор аз он мефаҳмад, ки чунин функсия вуҷуд дорад. Он пеш аз main() меояд, то main() онро бидонад. (Прототипро дар дохили main низ навиштан мумкин аст, вале одатан пеш аз он менависанд.) Тани функсия баъд аз main() омадааст.
return a + b; қимати ҷамъро бармегардонад ва онро ба ду тарз навиштан мумкин аст: return a + b; ё
Параметрҳои зоҳирӣ ва аслӣ
Ҳангоми даъват функсия қиматҳоро мегирад. Ду намуди параметр ҳаст:
- параметри зоҳирӣ (формалӣ) – дар сарлавҳаи функсия:
aваbдарint summa(int a, int b); - параметри аслӣ – дар ҷои муроҷиат:
a1ваb1дарsumma(a1, b1).
Шумораи параметрҳои аслӣ бояд ба шумораи параметрҳои зоҳирӣ баробар бошад. Ҳангоми иҷрои функсия барои параметрҳои зоҳирӣ хотираи нав ҷудо мешавад ва ҳар кадом бо параметри аслии мувофиқаш пур мешавад – яъне қиматҳо нусха мешаванд. Навъҳо месанҷанд ва лозим шавад, табдил меёбанд.
Барои он ки нусха шудан аён шавад, функсия параметрашро тағйир медиҳад: