Основи програмування на С ++ для початківців

Параметри (аргументи) функції за замовчуванням.

 Ми вже говорили про параметрах функции в отдельной статье. В этой –  ми коротко розберемося, что такое параметры функции по умолчанию. Зрозуміти це нескладно.    Використовують їх в програмуванні в основному для зручності. Наприклад нам треба намалювати 5 однакових прямокутників. Для этого мы можем написать функцию, которая принимает параметры по умолчанию. Рисует она, припустимо,  прямокутник 10 на 10 символов. І цей символ завжди‘@’:

Хотя мы не передавали в функции никаких параметров при вызове, мы увидим пять одинаковых прямоугольников из символов ‘@’ на нашем экране. Функция использовала те значения, которые были присвоены параметрам по умолчанию при её определении.

Но это не всё. Даже если мы определили параметры по умолчанию – есть удобная возможность изменить их значения при вызове.

Допустим, надо нарисовать прямоугольник 5 символов в ширину. інші параметри(10 символов в высоту и сам символ ‘@’ ) нас устраивают. Тоді в функцію ми передаємо тільки один параметр. Решта параметри функція візьме із заданих за замовчуванням.

c ++ параметри за замовчуванням, c ++ аргументи за умовчанням

Якщо ж нам необхідно змінити тільки символ і в параметрах він вказаний останнім, то придется прописать предшествующие параметры, даже если их значения нас устраивают.

c ++ параметри за замовчуванням, c ++ аргументи за умовчанням

На экране увидим:

c ++ параметри за замовчуванням, c ++ аргументи за умовчанням

Еще один момент, который касается определения параметров по умолчанию в заголовке функции. Определяться они должны справа налево. Наприклад якщо з трьох параметрів необхідно задати тільки один за замовчуванням, то он должен быть определен крайним справа.

параметри за замовчуванням з ++, аргументи за умовчанням з ++, C ++

На картинке параметр по умолчанию последний : charsymb=«@».Если их надо определить два – то точно так же это будут два крайних справа: 

Если вы объявляете прототип функции – треба визначити параметри за замовчуванням саме в прототипі. В самом определении функции этого делать уже не надо. Пожалуй всё. Если что-то не понятно – спрашивайте в комментариях.

2 думки про "Параметри (аргументи) функції за замовчуванням.

  1. Ці параметри зазвичай ось так просто не застосовуються… Вони потрібні якщо є якісь типові параметри. Ну наприклад…

    Ви пишіть читалку книг і за замовчуванням масштаб 100%. Можливо у вас буде функція типу
    навантаження(рядок імені файлу, /* всякі інші параметри */, масштаб = 100);
    Тобто,. зрозуміло, що ім'я файлу – обов'язковий параметр, а масштаб може і не вказуватися.

    Пишіть ви текстовий редактор. Кодування за замовчуванням UTF-8 (например).

    Пишіть штуку, яка зберігає що-небудь в XML форматі (є такий популярний формат) і за замовчуванням використовується XML версії 1.0.

    Я параметри за замовчуванням в своїх функціях майже не використовую. Зараз пошукав їх в останньому своєму проекті. Знайшов тільки один приклад:

    недійсним анімація(QString texturename, BOOL randomStartFrame = брехня);

    Тут функція запускає анімацію, в першому аргументі передається ім'я файлу з анімацією. Якщо другий аргумент не вказано, то за замовчуванням анімація буде запущена починаючи з першого кадру. Якщо ж другий аргумент true – то анімація буде запущена з випадкового кадру.

    Як на мене, ось в цьому випадку з анімацією параметри за замовчуванням теж використовувати не варто було б… У будь-якому випадку для їх виправданого використання потрібно “нормальне поведінки”, від якого можна відхилитися завданням параметрів.

Залишити коментар до Programmer_blog Скасувати відповідь

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *