ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 5) онлайн

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

Теперь мы подошли к рассмотрению самой функции, или ее определения. Опре- деление содержит код функции. Для функции starline() определение выглядит следующим образом:

void starline()   // заголовок функции

{

                For( int j=0; j<45; j++ ) // тело функции

                               cout << '*';                 cout << endl;

}

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

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

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

В табл. 5.1 сведена информация о трех компонентах функции.

Таблица 5.1. Компоненты функции

Название

Назначение

Пример

Объявление (прототип)

Содержит имя функции, типы ее аргументов и возвращаемого значения. Указывает компилятору на то, что определение функции будет сделано позднее

void func();

Название

Назначение

Пример

Вызов

Указывает на то, что необходимо выполнить функцию

func();

Заголовок

Первая строка определения

void func()

Определение

Является собственно функцией. Содержит код, предназначенный для исполнения

void func()

{

  // операторы

}

Рис. 5.2. Синтаксис функции

 

6