Справочные данные по языку C++_____________________________627

Наименьший уровень привилегий доступа предоставляет константный указа-
тель на константные данные. Такой указатель всегда указывает на одну и ту же
ячейку памяти и данные в этой ячейке нельзя модифицировать. Это выглядит так,
как если бы массив нужно было передать функции, которая только просматривает
массив, использует его индексы, но не модифицирует сам массив. Прототип функ-
ции с подобной передачей параметра может иметь вид:

void Ffconst char *const sPtr);

11.5.4 Параметры со значениями по умолчанию

Обычно при вызове функций в нее передается конкретное значение каждого
параметра. Но программист может указать, что параметр является параметром по
умолчанию и приписать этому параметру значение по умолчанию. Делается это за-
данием в заголовке функции после имени параметра символа «=», после которого
записывается значение по умолчанию. Пусть, например, вы хотите написать фун-
кцию, которая рассчитывает суммарную силу, действующую на тело объемом V с
плотностью Р, погруженное в жидкость (например, воду) с плотностью РН20. Как
известно, формула, выражающая эту суммарную силу, направленную вверх (если
ответ будет отрицательным, значит сила направлена вниз — тело тонет), следую-
щая: F=G*V*(P — РН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 (плотность не-
которых пород дерева), плотность воды PH20 принята по умолчанию равной
1 т/м3, а ускорение свободного падения G принято равным 9,81 м/с2.

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

F = Arh() ;

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

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

Например, вызов той же функции оператором

F = Arh(2) ;

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

F = Arh(2,2.6);

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