Язык программирования C++

         

Необязательные аргументы функций


При объявлении функций в языке Си++ имеется возможность задать значения аргументов по умолчанию. Первый случай применения этой возможности языка – сокращение записи. Если функция вызывается с одним и тем же значением аргумента в 99% случаев, и это значение достаточно очевидно, можно задать его по умолчанию. Предположим, функция expnt возводит число в произвольную целую положительную степень. Чаще всего она используется для возведения в квадрат. Ее объявление можно записать так:

double expnt (double x, unsigned int e = 2);

Определение функции:

double expnt (double x, unsigned int e = 2) { double result = 1; for (int i = 0; i e; i++) result *= x; return result; } int main() { double y = expnt(3.14); double x = expnt(2.9, 5); return 1; }

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

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

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

double expnt (double x, unsigned int e = 2); double expnt (double x);

приведет к ошибке компиляции – неоднозначности определения функции. Это происходит потому, что вызов

double x = expnt(4.1);

подходит как для первой, так и для второй функции.

on_load_lecture()

Дальше

Если Вы заметили ошибку - сообщите нам.

Страницы:

|

/p>

|

/p>

|

/p>

|

вопросы |

|

учебники

|

для печати и PDA

Курсы | Учебные программы | Учебники | Новости | Форум | Помощь



Телефон: +7 (495) 253-9312, 253-9313, факс: +7 (495) 253-9310, email: info@intuit.ru

2003-2007, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование



Содержание раздела