Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GLAVA_5_Funktsii.doc
Скачиваний:
28
Добавлен:
29.02.2016
Размер:
161.79 Кб
Скачать

Глава 5. Функции

Объявление и определение функций

Вызов функций

Локальные и глобальные переменные

Передача аргументов в функцию по значению

Ссылки

  • передача аргументов в функцию по ссылке

  • ссылка в качестве возвращаемого значения функции

Встраиваемые функции

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

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

Использование стандартных функций в программе

Объявление и определение функций

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

Различают два вида функций: определяемые пользователемистандартные (встроенные), являющиеся составной частью компилятора.

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

/* заголовок функции */

<тип_результата> <имя_функции> ([список_параметров])

{

тело_функции

}

где

  • тип_результата – тип возвращаемого значения функцией. Если функция не возвращает никакого значения, то на месте типа записывается спецификатор void. Тип void обычно называют пустым типом;

  • имя_функции – произвольно выбираемый пользователем идентификатор. Имя функции не должно совпадать со служебными словами и именами других данных в программе, т.е. должно быть уникальным;

  • список_параметров задаёт описание передаваемых данных в функцию при ее вызове, и для каждого параметра задаётся его тип;

  • тело_функции представляет собой последовательность операторов, допустимых в языке программирования С++, которые описывают определённый алгоритм.

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

int myFun(int x, float y); есть прототип функции myFun().

Имена параметров в прототипе функции можно опускать. Таким образом, объявление функции myFun() может иметь вид:

int myFun (int, float);

Каждая программа в своём составе должна иметь главную функцию main(). Именно функция main() обеспечивает точку входа в программу.

Кроме функции main(), в программу может входить произвольное число функций, выполнение которых инициализируется либо прямо, либо опосредованно вызовами из функцииmain(). Для того чтобы функция была доступной, необходимо, чтобы до её вызова о ней было известно компилятору.

Каждая функция должна быть определена где-нибудь в программе после её объявления, но не внутри другой функции, в том числе и не внутри main(). Кроме того, объявление функции вообще может отсутствовать в случае, если определение функции расположено выше по тексту main()-программы.

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

Оператор возврата в точку вызова функции является важным оператором тела функции и имеет следующую форму записи:

return [выражение];

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

Если функция не возвращает значение, выражение в операторе return не указывается, и оператор записывается в виде:

return;

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]