Основы программирования на С++ для начинающих

Параметры (аргументы) функции по умолчанию.

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

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

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

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

c++ параметры  по умолчанию, c++ аргументы  по умолчанию

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

c++ параметры  по умолчанию, c++ аргументы  по умолчанию

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

c++ параметры  по умолчанию, c++ аргументы  по умолчанию

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

параметры  по умолчанию с++, аргументы по умолчанию с++, c++

На картинке параметр по умолчанию последний : char symb ‘@’. Если их надо определить два – то точно так же это будут два крайних справа: 

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

2 thoughts on “Параметры (аргументы) функции по умолчанию.

  1. Параметры по умолчанию обычно вот так просто не применяются… Они нужны если есть какие-то типичные параметры. Ну например…

    Вы пишите читалку книг и по умолчанию масштаб 100%. Возможно у вас будет функция типа
    load(string filename, /* всякие другие параметры */, scale = 100);
    Т.е. понятно, что имя файла – обязательный параметр, а масштаб может и не указываться.

    Пишите вы текстовый редактор. Кодировка по умолчанию UTF-8 (например).

    Пишите штуку, которая сохраняет что-нибудь в XML формате (есть такой популярный формат) и по умолчанию используется XML версии 1.0.

    Я параметры по умолчанию в своих функциях почти не использую. Сейчас поискал их в последнем своем проекте. Нашел только один пример:

    void animation(QString texturename, bool randomStartFrame = false);

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

    Как по мне, вот в этом случае с анимацией параметры по умолчанию тоже использовать не стоило бы… В любом случае для их оправданного использования нужно “нормальное поведения”, от которого можно отклониться заданием параметров.

Добавить комментарий для Programmer_blog Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *