Параметри за замовчуванням - студопедія

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

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

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

Ще одна цікава можливість при роботі з функціями полягає в використанні параметрів за замовчуванням.

void F (int I, double D, char C = 'a', int J = 10)

У цьому прикладі у функції F останні два параметри визначені як параметри за замовчуванням.

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

Кількість параметрів за замовчуванням може бути будь-яким. При використанні стандартних параметрів необхідно пам'ятати:

1. всі параметри за замовчуванням повинні знаходитися в кінці списку параметрів функції;

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