🗊Презентация Программирование на С++. Функции

Нажмите для полного просмотра!
Программирование на С++. Функции, слайд №1Программирование на С++. Функции, слайд №2Программирование на С++. Функции, слайд №3Программирование на С++. Функции, слайд №4Программирование на С++. Функции, слайд №5Программирование на С++. Функции, слайд №6Программирование на С++. Функции, слайд №7Программирование на С++. Функции, слайд №8Программирование на С++. Функции, слайд №9Программирование на С++. Функции, слайд №10Программирование на С++. Функции, слайд №11Программирование на С++. Функции, слайд №12Программирование на С++. Функции, слайд №13Программирование на С++. Функции, слайд №14Программирование на С++. Функции, слайд №15Программирование на С++. Функции, слайд №16Программирование на С++. Функции, слайд №17Программирование на С++. Функции, слайд №18Программирование на С++. Функции, слайд №19Программирование на С++. Функции, слайд №20Программирование на С++. Функции, слайд №21Программирование на С++. Функции, слайд №22Программирование на С++. Функции, слайд №23Программирование на С++. Функции, слайд №24Программирование на С++. Функции, слайд №25Программирование на С++. Функции, слайд №26Программирование на С++. Функции, слайд №27Программирование на С++. Функции, слайд №28Программирование на С++. Функции, слайд №29Программирование на С++. Функции, слайд №30Программирование на С++. Функции, слайд №31Программирование на С++. Функции, слайд №32Программирование на С++. Функции, слайд №33Программирование на С++. Функции, слайд №34Программирование на С++. Функции, слайд №35Программирование на С++. Функции, слайд №36Программирование на С++. Функции, слайд №37

Содержание

Вы можете ознакомиться и скачать презентацию на тему Программирование на С++. Функции. Доклад-сообщение содержит 37 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Программирование на С++. Функции, слайд №1
Описание слайда:

Слайд 2





    Структура программы на языке С(С++) 
директивы препроцессора
Описания глобальных переменных и типов данных

// определение функции с именем f1
void f1(список формальных параметров) 
{  // тело (операторы) функции f1 
 }
// объявление (прототип) функции с именем f2
int  f2(список формальных параметров); 

// определение главной функции 
int main(void) 
{ f1(список фактических параметров); // вызов функции f1
  int a; 
  a = f2(список фактических параметров); // вызов функции f2
  cout << f2(список фактических параметров); // вызов ф-ции f2
}
// определение  функции с именем f2
int  f2(список формальных параметров) 
{   // операторы функции f1 
    return [<выражение>];
}
Описание слайда:
Структура программы на языке С(С++) директивы препроцессора Описания глобальных переменных и типов данных // определение функции с именем f1 void f1(список формальных параметров) { // тело (операторы) функции f1 } // объявление (прототип) функции с именем f2 int f2(список формальных параметров); // определение главной функции int main(void) { f1(список фактических параметров); // вызов функции f1 int a; a = f2(список фактических параметров); // вызов функции f2 cout << f2(список фактических параметров); // вызов ф-ции f2 } // определение функции с именем f2 int f2(список формальных параметров) { // операторы функции f1 return [<выражение>]; }

Слайд 3





    Структура программы
Программа на языке C++ состоит из директив препроцессора, описаний глобальных переменных и типов данных и из  функций.  Одна из функций (главная функция) должна иметь имя main. С нее начинается выполнение программы.
Функция в С(С++) - это подпрограмма , т. е. логически завершенный и определенным образом оформленный фрагмент программы, который может быть вызван из других частей программы (других функций). 
Функции подразделяют большие вычислительные задачи на более мелкие и дают возможность пользоваться уже написанными подпрограммами, в том числе и другими разработчиками.
Если функция написана грамотно и корректно, внутри ее тела оказываются скрытыми несущественные для других частей программы детали ее реализации, что делает программу в целом более ясной, а также облегчает ее отладку и внесение изменений.
При работе с функциями используются такие конструкции, как объявление (прототип) функции, определение функции и вызов функции. Определение и объявление функции  - это конструкция языка программирования для описания функции. 
Определение функции состоит из ее заголовка и тела. Заголовок функции включает: тип возвращаемого значения, имя функции (например, f1, f2, main) и в круглых скобках список формальных параметров. Тело функции – это составной оператор.
Объявление (прототип) функции состоит из заголовка функции, который заканчивается ‘;’.
Функции в С++ являются внешними, т. е. внутри одной функции нельзя определять другую функцию.
Определение вызываемой функции можно разместить в программе как до, так и после определения вызывающей функции. 
Например, функции f1 и f2 вызываются в главной функции. Определение функции f1 находится до определения главной функции программы, а определение функции f2  - после определения главной функции.
Описание слайда:
Структура программы Программа на языке C++ состоит из директив препроцессора, описаний глобальных переменных и типов данных и из функций. Одна из функций (главная функция) должна иметь имя main. С нее начинается выполнение программы. Функция в С(С++) - это подпрограмма , т. е. логически завершенный и определенным образом оформленный фрагмент программы, который может быть вызван из других частей программы (других функций). Функции подразделяют большие вычислительные задачи на более мелкие и дают возможность пользоваться уже написанными подпрограммами, в том числе и другими разработчиками. Если функция написана грамотно и корректно, внутри ее тела оказываются скрытыми несущественные для других частей программы детали ее реализации, что делает программу в целом более ясной, а также облегчает ее отладку и внесение изменений. При работе с функциями используются такие конструкции, как объявление (прототип) функции, определение функции и вызов функции. Определение и объявление функции - это конструкция языка программирования для описания функции. Определение функции состоит из ее заголовка и тела. Заголовок функции включает: тип возвращаемого значения, имя функции (например, f1, f2, main) и в круглых скобках список формальных параметров. Тело функции – это составной оператор. Объявление (прототип) функции состоит из заголовка функции, который заканчивается ‘;’. Функции в С++ являются внешними, т. е. внутри одной функции нельзя определять другую функцию. Определение вызываемой функции можно разместить в программе как до, так и после определения вызывающей функции. Например, функции f1 и f2 вызываются в главной функции. Определение функции f1 находится до определения главной функции программы, а определение функции f2 - после определения главной функции.

Слайд 4





    Структура программы
Если определение вызываемой функции  находится после определения вызывающей функции, то вызываемая функция должна быть объявлена перед определением вызывающей функции.
Функция может возвратить в вызываемую функцию через оператор возврата return значение любого из базовых типов, а также может возвращать указатель на массив (или более сложный объект). Например, функция с именем f2 возвращает значение целого типа int.
Операторов return в одной функции может быть несколько. Каждый оператор return прекращает выполнение функции. Все следующие за ним операторы не будут выполнены. Поэтому операторы return чаще всего располагаются в конце функции, в условных операторах или в операторах варианта.
В функциях с типом возвращаемого void (пустой), не возвращающих никакого значения, тоже могут встречаться операторы return, но в них не должно быть никакого выражения, только одно слово return: return;.  Такой оператор return служит только для немедленного выхода из функции.
Функция main() возвращает целое значение, если оно равно нулю, то ОС считает, что функция завершилась удачно. Стандарт С++ предусматривает, что функция main() возвращает 0 по умолчанию, если оператор return не использован явно. Некоторые компиляторы требуют завершать функцию main() оператором: return 0;. 
Вызов функции включает имя функции и в круглых скобках список фактических параметров.
Если функция не возвращает никакого значения ( тип возвращаемого void ), то для ее вызова используется оператор вызова, который включает имя функции и в круглых скобках список фактических параметров (например, функция с именем f1). 
Если функция возвращает значение через оператор возврата return, то она вызывается, либо в правой части оператора присваивания, либо в операторе вывода (например, функция с именем f2).
Описание слайда:
Структура программы Если определение вызываемой функции находится после определения вызывающей функции, то вызываемая функция должна быть объявлена перед определением вызывающей функции. Функция может возвратить в вызываемую функцию через оператор возврата return значение любого из базовых типов, а также может возвращать указатель на массив (или более сложный объект). Например, функция с именем f2 возвращает значение целого типа int. Операторов return в одной функции может быть несколько. Каждый оператор return прекращает выполнение функции. Все следующие за ним операторы не будут выполнены. Поэтому операторы return чаще всего располагаются в конце функции, в условных операторах или в операторах варианта. В функциях с типом возвращаемого void (пустой), не возвращающих никакого значения, тоже могут встречаться операторы return, но в них не должно быть никакого выражения, только одно слово return: return;. Такой оператор return служит только для немедленного выхода из функции. Функция main() возвращает целое значение, если оно равно нулю, то ОС считает, что функция завершилась удачно. Стандарт С++ предусматривает, что функция main() возвращает 0 по умолчанию, если оператор return не использован явно. Некоторые компиляторы требуют завершать функцию main() оператором: return 0;. Вызов функции включает имя функции и в круглых скобках список фактических параметров. Если функция не возвращает никакого значения ( тип возвращаемого void ), то для ее вызова используется оператор вызова, который включает имя функции и в круглых скобках список фактических параметров (например, функция с именем f1). Если функция возвращает значение через оператор возврата return, то она вызывается, либо в правой части оператора присваивания, либо в операторе вывода (например, функция с именем f2).

Слайд 5





Варианты синтаксиса объявления  функции:
Варианты синтаксиса объявления  функции:

 тип имя_функции(тип имя_пар-ра1, тип имя_пар-ра2, …);
	                      или
 тип имя_функции(тип , тип, …);


Пример:

    void My_Func (int Par1, float Par2, float Par3);
 или
    void My_Func (int, float, float);
Описание слайда:
Варианты синтаксиса объявления функции: Варианты синтаксиса объявления функции: тип имя_функции(тип имя_пар-ра1, тип имя_пар-ра2, …); или тип имя_функции(тип , тип, …); Пример: void My_Func (int Par1, float Par2, float Par3); или void My_Func (int, float, float);

Слайд 6






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

Слайд 7





Задача:
Задача:

 Поиск максимального из двух чисел.

Постановка задачи:
Исходные данные:  целые i, k –  числа.
Результаты работы программы: целое число m – максимальное из чисел i и k .
Описание слайда:
Задача: Задача: Поиск максимального из двух чисел. Постановка задачи: Исходные данные: целые i, k – числа. Результаты работы программы: целое число m – максимальное из чисел i и k .

Слайд 8





Блок – схема алгоритма решения задачи
Блок – схема алгоритма решения задачи
Описание слайда:
Блок – схема алгоритма решения задачи Блок – схема алгоритма решения задачи

Слайд 9


Программирование на С++. Функции, слайд №9
Описание слайда:

Слайд 10


Программирование на С++. Функции, слайд №10
Описание слайда:

Слайд 11





Как правило, при обработке оператора описания переменной компилятор автоматически выделяет память под переменную в соответствии с указанным типом. При завершении программы или функции, в которой была описана переменная, память автоматически освобождается.
Как правило, при обработке оператора описания переменной компилятор автоматически выделяет память под переменную в соответствии с указанным типом. При завершении программы или функции, в которой была описана переменная, память автоматически освобождается.
Доступ к объявленной переменной осуществляется по ее имени. При этом все обращения к переменной меняются на адрес ячейки памяти, в которой хранится ее значение. 
Доступ к значению переменной можно получить иным способом – определить собственные переменные для хранения адресов памяти. Такие переменные называют указателями.
Итак, указатель – это переменная, значением которой является адрес памяти, по которому храниться объект определенного типа (другая переменная).
Как и любая переменная, указатель должен быть объявлен. При объявлении указателей всегда указывается тип переменной, значение которой будет храниться по данному адресу. Звездочка в описании указателя относиться непосредственно к имени, поэтому, чтобы объявить несколько указателей, ее ставят перед именем каждого из них.
При работе с указателями часто используют операции получения адреса (&) и разыменования (*). Операция получения адреса (&) возвращает адрес своего операнда. Операция разыменования (*) возвращает значение переменной, хранящееся по заданному адресу, то есть выполняет действие, обратное операции получения адреса (&).
C помощью указателей можно передавать адреса фактических параметров функциям и адреса функций в качестве параметров, создавать новые переменные в процессе выполнения программы, обрабатывать массивы, строки и структуры.
Описание слайда:
Как правило, при обработке оператора описания переменной компилятор автоматически выделяет память под переменную в соответствии с указанным типом. При завершении программы или функции, в которой была описана переменная, память автоматически освобождается. Как правило, при обработке оператора описания переменной компилятор автоматически выделяет память под переменную в соответствии с указанным типом. При завершении программы или функции, в которой была описана переменная, память автоматически освобождается. Доступ к объявленной переменной осуществляется по ее имени. При этом все обращения к переменной меняются на адрес ячейки памяти, в которой хранится ее значение. Доступ к значению переменной можно получить иным способом – определить собственные переменные для хранения адресов памяти. Такие переменные называют указателями. Итак, указатель – это переменная, значением которой является адрес памяти, по которому храниться объект определенного типа (другая переменная). Как и любая переменная, указатель должен быть объявлен. При объявлении указателей всегда указывается тип переменной, значение которой будет храниться по данному адресу. Звездочка в описании указателя относиться непосредственно к имени, поэтому, чтобы объявить несколько указателей, ее ставят перед именем каждого из них. При работе с указателями часто используют операции получения адреса (&) и разыменования (*). Операция получения адреса (&) возвращает адрес своего операнда. Операция разыменования (*) возвращает значение переменной, хранящееся по заданному адресу, то есть выполняет действие, обратное операции получения адреса (&). C помощью указателей можно передавать адреса фактических параметров функциям и адреса функций в качестве параметров, создавать новые переменные в процессе выполнения программы, обрабатывать массивы, строки и структуры.

Слайд 12


Программирование на С++. Функции, слайд №12
Описание слайда:

Слайд 13






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

Слайд 14


Программирование на С++. Функции, слайд №14
Описание слайда:

Слайд 15





Передача фактических параметров в функцию может происходить:
Передача фактических параметров в функцию может происходить:
по значению,
по адресу.

При передаче в функцию фактического параметра по значению, соответствующий формальный параметр получит копию значения фактического параметра. Функция работая с копией фактического параметра не может изменить оригинальное значение фактического параметра. Это происходит потому, что копия  фактического параметра (формальный параметр) создается в стеке. В момент завершения работы функции стековое пространство, в котором находятся формальные параметры функции, очищается, уничтожая находящиеся в нем данные. При этом значение-оригинал фактического параметра оказывается недоступным для функции.
В примере  фактические параметры  i и k передаются в функцию max по значению, т. е. формальный параметр a получит копию значения фактического параметра i, а формальный параметр b получит копию значения фактического параметра k.
Описание слайда:
Передача фактических параметров в функцию может происходить: Передача фактических параметров в функцию может происходить: по значению, по адресу. При передаче в функцию фактического параметра по значению, соответствующий формальный параметр получит копию значения фактического параметра. Функция работая с копией фактического параметра не может изменить оригинальное значение фактического параметра. Это происходит потому, что копия фактического параметра (формальный параметр) создается в стеке. В момент завершения работы функции стековое пространство, в котором находятся формальные параметры функции, очищается, уничтожая находящиеся в нем данные. При этом значение-оригинал фактического параметра оказывается недоступным для функции. В примере фактические параметры i и k передаются в функцию max по значению, т. е. формальный параметр a получит копию значения фактического параметра i, а формальный параметр b получит копию значения фактического параметра k.

Слайд 16


Программирование на С++. Функции, слайд №16
Описание слайда:

Слайд 17





Если функция в процессе своей работы должна изменить значение фактического параметра, то его нужно передать по адресу,  с использованием указателя или по ссылки. 
Если функция в процессе своей работы должна изменить значение фактического параметра, то его нужно передать по адресу,  с использованием указателя или по ссылки. 
Для передачи в функцию фактического параметра по адресу с использованием указателя необходимо:
Оформить фактический параметр, либо как указатель ранее инициализированный, либо как обычную переменную к которой применена операция прямой адресации (&);
Оформить в заголовке функции соответствующий формальный параметр как указатель;
При передаче в функцию фактического параметра по адресу с использованием указателя соответствующий формальный параметр  получает адрес фактического параметра и в функции можно применить операцию разыменования (*) формального параметра указателя, получая таким образом доступ к значению  фактического параметра и возможность  его изменения.
В примере  формальные параметры указатели a1 и b1 получат адреса фактических параметров a и b.
Описание слайда:
Если функция в процессе своей работы должна изменить значение фактического параметра, то его нужно передать по адресу, с использованием указателя или по ссылки. Если функция в процессе своей работы должна изменить значение фактического параметра, то его нужно передать по адресу, с использованием указателя или по ссылки. Для передачи в функцию фактического параметра по адресу с использованием указателя необходимо: Оформить фактический параметр, либо как указатель ранее инициализированный, либо как обычную переменную к которой применена операция прямой адресации (&); Оформить в заголовке функции соответствующий формальный параметр как указатель; При передаче в функцию фактического параметра по адресу с использованием указателя соответствующий формальный параметр получает адрес фактического параметра и в функции можно применить операцию разыменования (*) формального параметра указателя, получая таким образом доступ к значению фактического параметра и возможность его изменения. В примере формальные параметры указатели a1 и b1 получат адреса фактических параметров a и b.

Слайд 18


Программирование на С++. Функции, слайд №18
Описание слайда:

Слайд 19





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

В примере  формальные параметры ссылки a1 и b1 получат адреса фактических параметров a и b.
Описание слайда:
Для передачи в функцию фактического параметра по адресу с использованием ссылки необходимо: Для передачи в функцию фактического параметра по адресу с использованием ссылки необходимо: Оформить фактический параметр как обычную переменную; Оформить в заголовке функции соответствующий формальный параметр как ссылку; При передаче в функцию фактического параметра по адресу с использованием ссылки соответствующий формальный параметр получает адрес фактического параметра , в функции автоматически выполнятся доступ по адресу к значению фактического параметра и появляется возможность изменения значения фактического параметра . В примере формальные параметры ссылки a1 и b1 получат адреса фактических параметров a и b.

Слайд 20





   Рекурсивные функции
Описание слайда:
Рекурсивные функции

Слайд 21





   Рекурсивные функции

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

Рекурсивные функции чаще всего используют для компактной реализации рекурсивных алгоритмов. Например, классическими рекурсивными алгоритмами могут быть вычисление факториала (пример 1), вычисление чисел Фибоначчи (пример 2), возведение числа в целую положительную степень.
Любой рекурсивный алгоритм можно реализовать без применения рекурсии. Достоинством рекурсии является компактная запись, а недостатком – расход памяти на повторные вызовы функций и передачу параметров, кроме того, существует опасность переполнения памяти.
Последовательность чисел Фибоначчи (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ……): нулевой элемент последовательности равен нулю, первый – единице, а каждый последующий представляет собой сумму двух предыдущих.
Описание слайда:
Рекурсивные функции Рекурсивной называется функция, вызывающая сама себя. Рекурсивные функции, которые прямо вызывают сами себя, называются прямо рекурсивными. Если две функции рекурсивно вызывают друг друга, они называются косвенно рекурсивными. Рекурсивные функции чаще всего используют для компактной реализации рекурсивных алгоритмов. Например, классическими рекурсивными алгоритмами могут быть вычисление факториала (пример 1), вычисление чисел Фибоначчи (пример 2), возведение числа в целую положительную степень. Любой рекурсивный алгоритм можно реализовать без применения рекурсии. Достоинством рекурсии является компактная запись, а недостатком – расход памяти на повторные вызовы функций и передачу параметров, кроме того, существует опасность переполнения памяти. Последовательность чисел Фибоначчи (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ……): нулевой элемент последовательности равен нулю, первый – единице, а каждый последующий представляет собой сумму двух предыдущих.

Слайд 22





   Рекурсивные функции
Описание слайда:
Рекурсивные функции

Слайд 23


Программирование на С++. Функции, слайд №23
Описание слайда:

Слайд 24







Вызов функции всегда сопровождается дополнительными действиями по обращению к функциям, передачей параметров через стек, передачей возвращаемого значения. Все это ухудшает характеристики программы, в частности ее быстродействие.
Но C++ позволяет задавать функции, которые не вызываются, а встраиваются в программу непосредственно в месте ее вызова. В результате этого в программе создается столько копий встраиваемой функции, сколько раз к ней обращалась вызывающая программа.
Использование встраиваемых функций не связано с механизмами вызова и возврата, следовательно, работают они гораздо быстрее обычных. Однако они способны значительно увеличить объем программного кода.
Для объявления встраиваемой функции указывают спецификатор inline перед определением функции.
Спецификатор inline является не командой для компилятора, а только запросом. Поэтому, если компилятор по каким-либо причинам не может встроить функцию, она компилируется как обычная и никаких сообщений об этом на экран не выдается.
Некоторые компиляторы не могут сделать функцию встраиваемой, если:
функция содержит операторы цикла,
функция содержит операторы switch или goto,
функция рекурсивная.
Реально компилятор может проигнорировать объявление inline, если сочтет функцию слишком большой, вследствие чего характеристики программы могут оказаться хуже, чем в случае вызываемой функции.
Описание слайда:
Вызов функции всегда сопровождается дополнительными действиями по обращению к функциям, передачей параметров через стек, передачей возвращаемого значения. Все это ухудшает характеристики программы, в частности ее быстродействие. Но C++ позволяет задавать функции, которые не вызываются, а встраиваются в программу непосредственно в месте ее вызова. В результате этого в программе создается столько копий встраиваемой функции, сколько раз к ней обращалась вызывающая программа. Использование встраиваемых функций не связано с механизмами вызова и возврата, следовательно, работают они гораздо быстрее обычных. Однако они способны значительно увеличить объем программного кода. Для объявления встраиваемой функции указывают спецификатор inline перед определением функции. Спецификатор inline является не командой для компилятора, а только запросом. Поэтому, если компилятор по каким-либо причинам не может встроить функцию, она компилируется как обычная и никаких сообщений об этом на экран не выдается. Некоторые компиляторы не могут сделать функцию встраиваемой, если: функция содержит операторы цикла, функция содержит операторы switch или goto, функция рекурсивная. Реально компилятор может проигнорировать объявление inline, если сочтет функцию слишком большой, вследствие чего характеристики программы могут оказаться хуже, чем в случае вызываемой функции.

Слайд 25





   Перегрузка функций
Описание слайда:
Перегрузка функций

Слайд 26





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

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

Функции не могут быть перегружены, если 
Они отличаются только типом возвращаемого значения. Попытки перегрузить функции таким образом приводят к появлению ошибки компиляции «Type mismatch in redeclaration». Это происходит потому, что компилятор принимает во внимание только аргументы функций.
Их аргументы отличаются только использованием ссылок.
Их аргументы отличаются только применением модификаторов const.
Описание слайда:
Перегрузка функций В программах, написанных на языке C++, возможно существование нескольких различных функций, имеющих одно имя. При этом одноименные функции обязательно должны отличаться числом и/или типом своих аргументов. Такие функции называются перегруженными. Для того чтобы перегрузить функцию, необходимо задать все требуемые варианты ее реализации. Компилятор автоматически выбирает правильный вариант вызова согласно числу и типу аргументов. Тип возвращаемого значения при перегрузке большой роли не играет. Перегруженные функции позволяют упростить программу, допуская обращение к одному имени для выполнения близких по смыслу (но, возможно, алгоритмически различных) действий. Возможность существования в одной программе нескольких одноименных функций является одним из проявлений полиморфизма. Поскольку выбор нужного варианта происходит на этапе компиляции программы, то это - статический полиморфизм. Возможность использования одинаковых идентификаторов для выполнения близких по смыслу, но, возможно, алгоритмически различных действий называется полиморфизмом. Функции не могут быть перегружены, если Они отличаются только типом возвращаемого значения. Попытки перегрузить функции таким образом приводят к появлению ошибки компиляции «Type mismatch in redeclaration». Это происходит потому, что компилятор принимает во внимание только аргументы функций. Их аргументы отличаются только использованием ссылок. Их аргументы отличаются только применением модификаторов const.

Слайд 27





   Использование аргументов по умолчанию
Описание слайда:
Использование аргументов по умолчанию

Слайд 28





    Использование аргументов по умолчанию
Применение аргументов по умолчанию представляет собой самую простую форму перегрузки функций. При этом один или несколько аргументов функции при ее вызове могут отсутствовать, тогда им передается значение по умолчанию. Для того чтобы задать аргументу значение по умолчанию, нужно в заголовке функции поставить после этого аргумента знак равенства и значение, которое будет передаваться по умолчанию:
Если при вызове функции часть аргументов отсутствует, то компилятор считает, что эти аргументы находятся в конце списка аргументов, т. е. нельзя задать явно второй аргумент, задав первый по умолчанию.
В общем случае все параметры по умолчанию должны находиться правее параметров, задаваемых явно.
Аргументы по умолчанию должны быть константами или глобальными переменными.
При создании функции с аргументами по умолчанию их следует задавать единожды: либо в прототипе функции, либо в заголовке ее определения, но не вместе.
Если значение по умолчанию не задано, а соответствующий аргумент при вызове функции отсутствует, то это вызывает ошибки компиляции.
Описание слайда:
Использование аргументов по умолчанию Применение аргументов по умолчанию представляет собой самую простую форму перегрузки функций. При этом один или несколько аргументов функции при ее вызове могут отсутствовать, тогда им передается значение по умолчанию. Для того чтобы задать аргументу значение по умолчанию, нужно в заголовке функции поставить после этого аргумента знак равенства и значение, которое будет передаваться по умолчанию: Если при вызове функции часть аргументов отсутствует, то компилятор считает, что эти аргументы находятся в конце списка аргументов, т. е. нельзя задать явно второй аргумент, задав первый по умолчанию. В общем случае все параметры по умолчанию должны находиться правее параметров, задаваемых явно. Аргументы по умолчанию должны быть константами или глобальными переменными. При создании функции с аргументами по умолчанию их следует задавать единожды: либо в прототипе функции, либо в заголовке ее определения, но не вместе. Если значение по умолчанию не задано, а соответствующий аргумент при вызове функции отсутствует, то это вызывает ошибки компиляции.

Слайд 29





   Указатель на функцию
Описание слайда:
Указатель на функцию

Слайд 30





В определении указателя на функцию количество и тип параметров должны совпадать с соответствующими типами в определении функции, на которую ставится указатель.
В определении указателя на функцию количество и тип параметров должны совпадать с соответствующими типами в определении функции, на которую ставится указатель.
Присвоение указателю адреса функции не требует операции взятие адреса (&), поскольку имя функции само по себе обозначает этот адрес.
Описание слайда:
В определении указателя на функцию количество и тип параметров должны совпадать с соответствующими типами в определении функции, на которую ставится указатель. В определении указателя на функцию количество и тип параметров должны совпадать с соответствующими типами в определении функции, на которую ставится указатель. Присвоение указателю адреса функции не требует операции взятие адреса (&), поскольку имя функции само по себе обозначает этот адрес.

Слайд 31





   Указатель на функцию как параметр функции
Описание слайда:
Указатель на функцию как параметр функции

Слайд 32





   Указатель на функцию как параметр функции
Описание слайда:
Указатель на функцию как параметр функции

Слайд 33





   Указатель на функцию как параметр функции
Описание слайда:
Указатель на функцию как параметр функции

Слайд 34


Программирование на С++. Функции, слайд №34
Описание слайда:

Слайд 35


Программирование на С++. Функции, слайд №35
Описание слайда:

Слайд 36






При наличии прототипов вызываемые функции не обязаны размещаться в одном файле с вызывающей функцией, а могут оформляться в виде отдельных модулей.
При разработке программ, которые состоят из большого количества функций, размещенных в разных модулях, прототипы функций и описания внешних объектов (констант, переменных, массивов) помещают в отдельный файл, который включают в начало каждого из модулей программы с помощью директивы #include "имя_файла".
Описание слайда:
При наличии прототипов вызываемые функции не обязаны размещаться в одном файле с вызывающей функцией, а могут оформляться в виде отдельных модулей. При разработке программ, которые состоят из большого количества функций, размещенных в разных модулях, прототипы функций и описания внешних объектов (констант, переменных, массивов) помещают в отдельный файл, который включают в начало каждого из модулей программы с помощью директивы #include "имя_файла".

Слайд 37





 Контрольные вопросы 
 Контрольные вопросы 
Понятие и назначение функции в С(C++).
 Объявление и определение функций: понятие, назначение, синтаксис записи, примеры. Формальные параметры функций:  понятие, синтаксис записи.
Понятие и синтаксис объявления указателя в С++. Что понимается под инициализацией и разыменовыванием указателя?
Понятие, назначение и синтаксис описания ссылок в С++.
Вызов функции: синтаксис записи, примеры различных вариантов вызова функций. Фактические параметры функций:  понятие, синтаксис записи. Дайте характеристику способов передачи параметров в функцию.
Как в С/C++ оформляются программы, состоящие из нескольких модулей?
Понятие, достоинства и недостатки рекурсивных функций.
Понятие, назначение и синтаксис оформления встраиваемых функций и функций с аргументами по умолчанию.
Понятие и назначение перегрузки функций в С++.
Как определяется указатель на функцию? Когда удобно использовать указатель на функцию?
Описание слайда:
Контрольные вопросы Контрольные вопросы Понятие и назначение функции в С(C++). Объявление и определение функций: понятие, назначение, синтаксис записи, примеры. Формальные параметры функций: понятие, синтаксис записи. Понятие и синтаксис объявления указателя в С++. Что понимается под инициализацией и разыменовыванием указателя? Понятие, назначение и синтаксис описания ссылок в С++. Вызов функции: синтаксис записи, примеры различных вариантов вызова функций. Фактические параметры функций: понятие, синтаксис записи. Дайте характеристику способов передачи параметров в функцию. Как в С/C++ оформляются программы, состоящие из нескольких модулей? Понятие, достоинства и недостатки рекурсивных функций. Понятие, назначение и синтаксис оформления встраиваемых функций и функций с аргументами по умолчанию. Понятие и назначение перегрузки функций в С++. Как определяется указатель на функцию? Когда удобно использовать указатель на функцию?



Похожие презентации
Mypresentation.ru
Загрузить презентацию