- •Глава 5. Функции
- •Объявление и определение функций
- •Вызов функций
- •Локальные и глобальные переменные
- •Передача аргументов в функцию по значению
- •Передача аргументов в функцию по ссылке
- •Ссылка в качестве возвращаемого значения функции
- •Встраиваемые функции
- •Перегрузка функций
- •Использование аргументов по умолчанию
- •Использование стандартных функций в программе
Глава 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()в программе могут быть и другие функциипользователя. В теле функции нельзя объявить другую функцию.