Результат виконанння програми chmn

ФУНКЦІЇ.

Перерахуємо вже розглянуті властивості функцій:

• Функція є програмним блоком.

• Функція може бути виконана, як у вигляді підпрограми (1_16), так і у вигляді самостійної функції, яка може використовуватися у будь-якій програмі (1_21).

• Функція може мати або не мати аргументи та значення, яке повертається.

• Прототип функції слугує її оголошенням. Спочатку йде прототип або опис функції, а потім перший виклик функції.

• У тілі функції може бути інша функція (1_23, 1_25).

• При виклику функції аргументом може бути виклик іншої функції (1_25) або арифметичний вираз (1_22).

ПЕРЕВАНТАЖЕННЯ ФУНКЦІЙ

Змінні мають тип, який при дії з ними треба враховувати. Для функцій визначені типи значень,що повертаються, та типи аргументів.

 
 

Таблиця 1.2. Варіанти прототипів

Коли при виклику функції застосувати аргумент непередбаченого типу, компілятор може зробити спробу привести типи по своїм правилам (але на це не стоїть надіється) або зафіксує помилку. С++ дозволяє визначити декілька функцій з одним й тим же ім’ям, але з різним набором аргументів, що має назву перевантаження функцій.

Приклад. У стандартній бібліотеці є три окремих функцій для визначення абсолютних значень трьох типів:

1) Int abs (int); 2) double fabs (double); 3) long labs (long);

Для здійснення перевантаження треба записати три варіанта прототипу нової функції та три варіанта опису функції, що й зроблено в наступній програмі. Прототипи записані у вигляді коментаря.

При виклику функції x=abs1(a) компілятор визначає тип змінної а та виконує потрібний варіант. Для перевантаження функції застосовується нове ім’я abs1.

Можна перевантажувати функції, у котрих різняться аргументи по типу, кількості, порядку слідування.

Неможливо перевантажувати функції, що різняться тільки типом значення, що повертаються.

Всередині тіл функцій, що перевантажені, можна виконувати різні алгоритми.

Програма – перевантажена функція abs1.

/*файл SUBPROG\abs.cpp – Перевантаження функцій abs, fabs, labs*/

//int abs1(int); для цілих чисел

//double abs1(double); для чисел типу double

//long abs1(long); для цілих типу long


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: