Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы(С++).doc
Скачиваний:
6
Добавлен:
17.11.2019
Размер:
385.54 Кб
Скачать

Значения параметров функции, используемые по умолчанию

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

Из этого правила существует одно исключение, которое вступает в силу, если в объявлении функции для параметра объявляется значение по умолчанию. Значение по умолчанию – это значение, которое используется в том случае, если при вызове функции для параметра не установлено значение.

Рассмотрим пример объявления функции:

long myFunc (int x = 21);

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

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

long myFunc (int param1, int param2, int param3);

Параметру param2 может быть назначение значение по умолчанию только в том случае, если значение по умолчанию назначено и параметру param3. Параметру param1– когда установлены значения по умолчанию и param2 и param3.

Рассмотрим сказанное выше подробно.

// использование значений по умолчанию для параметров функций

  1. #include <iostream>

  2. using namespace std;

  3. //объявление функции

  4. int Cube (int l, int w=25, int h=1);

  5. int main()

  6. {

  7. // инициализация параметров, хранящих значения размеров куба

  8. int l=100;

  9. int w=50;

  10. int h=2;

  11. int v;

  12. // вызов функции со всеми ее параметрами; используются значе-

  13. // ния, определенные в строках 9-11

  14. v=Cube(l,w,h);

  15. cout<<"First: "<<v<<"\n";

  16. // вызов функции с двумя ее параметрами; значение высоты ис

  17. //пользуется по умолчанию

  18. v=Cube(l,w);

  19. cout<<"Second: "<<v<<"\n";

  20. // вызов функции с одним параметром

  21. v=Cube(l);

  22. cout<<"Thrid: "<<v<<"\n";

  23. return 0;

  24. }

  25. //определение функции

  26. Cube (int l, int w, int h)

  27. {

  28. return (l*w*h);

  29. }

Результат.

First: 10000

Second: 5000

Thrid: 2500

Анализ. В прототипе функции Cube() в строке 4 объявляется, что функция принимает три параметра, причем последние два имеют значения, устанавливаемые по умолчанию. Функция вычисляет объем параллелепипеда на основании передаваемых параметров: если значение ширины w не передано, то по умолчанию оно принимается равным 25 , а высоты h в том же случае – 1. В строке13 в качестве параметров передаются функции Cube() переменные, инициализированные в строках 9-11 и в строке 16 выводится первое значение объема. В строке 19 функция вызывается вновь, но без параметра, содержащего высоту, и в этом случае используется значение по умолчанию(h=1). При третьем вызове функции Cube() нет w и h, поэтому уже два значения используются определенными по умолчанию.

Массивы в С++