|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Параметры со значениями по умолчаниюЧтобы упростить вызов функции, в ее заголовке можно указать значения параметров по умолчанию. Эти параметры должны быть последними в списке и при вызове функции аргументы для них могут опускаться. Если при вызове аргумент опущен, то должны отсутствовать и все аргументы, стоящие за ним, т.к. задавать значения по умолчанию можно только для последних параметров в списке функции. В качестве значений параметров по умолчанию могут использоваться константы или константные выражения. Параметр по умолчанию проходит проверку типа во время описания функции и вычисляется во время ее вызова. Пример участка кода функции, определяющей сумму переменных отношений от 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. При обращении пропуск умалчиваемых параметров в списке недопустим, т.е. для получения значения x 1 + x 2 + x 3 + x 5 вызов функции Sum (х 1, х 2, х 3, х 5); приведет к ошибочному результату. Правильным будет обращение Sum (x 1, x 2, x 3, 0, x 5); Перегрузка функций В языке С++ реализована возможность использования одного идентификатора для функций, выполняющих различные действия над различными типами данных, в результате чего можно использовать несколько функций с одним и тем же именем, но с разными списками параметров, как по количеству, так и по типу. Такие функции называют перегруженными, а сам механизм – перегрузка функций. Компилятор определяет, к какой из функций с одним и тем же именем следует обратиться путем сравнения типов фактических аргументов с типами формальных параметров в заголовках всех этих функций, т.е. компилятор в зависимости от типа и количества аргументов будет формировать необходимое обращение к соответствующей функции. Поиск функции, которую надо вызвать, осуществляется за три отдельных шага: 1. Поиск функции с точным соответствием параметров и ее использование, если она найдена. 2. Поиск соответствующей функции, используя встроенные преобразования типов данных. 3. Поиск соответствующей функции, используя преобразования, определенные пользователем. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |