Russian Belarusian English German Japanese Ukrainian
  • Главная
  • Параметры со значениями по умолчанию

Обычно при вызове функции в нее передается конкретное значение каждого параметра. Но программист может указать, что параметр является параметром по умолчанию, и приписать этому параметру значение по умолчанию. Делается это заданием в заголовке функции после имени параметра символа "=", после которого записывается значение по умолчанию. Пусть, например, вы хотите написать функцию, которая рассчитывает суммарную силу, действующую на тело объемом V с плотностью Р, погруженное в жидкость (например, воду) с плотностью РН20. Как известно, формула, выражающая эту суммарную силу, направленную вверх (если ответ будет отрицательным, значит сила направлена вниз - тело тонет), следующая: F=GV(Р-РН20), где G - ускорение свободного падения. Функцию, определяющую эту силу, можно описать следующим образом:

double Arh(double V=1, double P=0.5, double PH20=1, double G=9.81)
{ return G*V*(PH20-P); }

Здесь всем параметрам даны значения по умолчанию. Объем V по умолчанию принят равным 1 м3, плотность тела Р по умолчанию равна 0.5 т/м3 (плотность некоторых пород дерева), плотность воды РН20 принята по умолчанию равной 1 т/м3, а ускорение свободного падения G принято равным 9,81 м/с2.

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

F=Arh();

то значение F будет равно силе при значениях всех параметров по умолчанию.

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

F=Arh(2);

позволяет рассчитать силу, действующую на тело объемом 2 м3 при значениях всех остальных параметров по умолчанию. Вызов функции оператором:

F=Arh(2,2.6);

позволяет рассчитать силу, действующую на алюминиевое (плотность 2.6 т/м3) тело объемом 2 м3 при значениях остальных параметров по умолчанию. Аналогично, задав при вызове три параметра можно рассчитать силу, действующую на тело, погруженное в жидкость другой плотности, а задав все четыре параметра можно определить силу, действующую на тело при эксперименте, проводящемся не на уровне моря (при этом изменится ускорение свободного падения).

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

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

F=Arh(2,,1.1); //Ошибочный вызов

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

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Поиск по сайту