Оголошення, визначення і виклик функції
Функція - це іменована область коду, яка може бути викликана з інших частин програми. Функції також часто називаються підпрограмами. У будь-якій програмі на C ++ обов'язково повинна бути як мінімум одна функція - з ім'ям main. У всіх прикладах програм, наведених раніше, це була єдина функція в програмі. З неї починається виконання програми, але в реальних додатках крім неї створюються і інші функції, які викликаються з main і один з одного.
тіп_результата імя_функциі (спісок_параметров)
Перший рядок називається заголовком функції. У ній описується:
- Тип результату - тип даних значення, яке повертає функція в результаті своєї роботи. У C ++, на відміну від деяких мов програмування, немає поняття процедури - підпрограми, що не повертає значення. Тому якщо функція не повинна повертати значення, як тип результату вказується void.
- Ім'я - назва функції, тобто будь-який допустимий в C ++ ідентифікатор. Ім'я потім буде використано для виклику функції.
Після заголовка функції в фігурних дужках слід тіло функції - послідовність інструкцій, що будуть виконуватися при виконанні функції.
Якщо функція має тип результату, відмінний від void, то вона обов'язково повинна повернути будь-яке значення. Це здійснюється за допомогою оператора return вираз ;. Даний оператор відразу ж перериває виконання функції і повертає вказане значення.
Якщо функція не повертає значення, то вихід з неї відбувається після виконання останньої інструкції в тілі, а оператор return необов'язковий. Якщо ж він використовується, то повертається значення після нього не вказується, тобто він записується у вигляді return;
Тіло функції не може містити визначення інших функцій, тобто функції в C ++ не можуть бути вкладеними.
Приклади визначення функції:
// визначення максимуму двох чисел
int max (int a, int b)
return (a> b). a. b;
// визначення середнього арифметичного трьох чисел
float avg (int num1, int num2, int num3)
return (num1 + num2 + num3) / 3.0;
// вивід на екран двовимірного динамічного масиву
void print (double ** arr, int rows, int cols)