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


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

В качестве значений параметров по умолчанию могут использоваться константы или константные выражения.

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

Пример участка кода функции, определяющей сумму переменных отношений от 2-х до 5-ти:

. . .

int sum(int a, int b, int c=0, int d=0, int e=0) { // 0 – умалчиваемые значения

return (a+b+c+d+e);

}

int main ()

{

int x1=1, x2=2, x3=3, x4=4, x5=5;

int y2, у3, у4, у5;

у2= Sum (х1, х2); // Работают все умалчиваемые значения;

у3= Sum (х1, х2, х3); // – два последних значения;

у4= Sum (х1, х2, х3, х4); // – одно последнее значение;

у5= Sum (х1, х2, х3, х4, х5)

. . .

return 0;

}

Таким образом:

1. Умалчиваемое значение аргумента функции задается при его объявлении в заголовке функции.

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

3. При обращении пропуск умалчиваемых параметров в списке недопустим, т.е. для получения значения x1 + x2 + x3 + x5 вызов функции Sum (х1, х2, х3, х5); приведет к ошибочному результату.

Правильным будет обращение Sum(x1, x2, x3, 0, x5);

Перегрузка функций

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

Такие функции называют перегруженными, а сам механизм – перегрузка функций.

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

Поиск функции, которую надо вызвать, осуществляется за три отдельных шага:

1. Поиск функции с точным соответствием параметров и ее использование, если она найдена.

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

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



Дата добавления: 2017-10-04; просмотров: 1549;


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

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.