Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции АиП.doc
Скачиваний:
92
Добавлен:
15.11.2018
Размер:
668.67 Кб
Скачать
    1. Функции

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

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

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

Функции состоят из заголовка и тела. Заголовок содержит объявление типа возвращаемого значения, имени и параметров функции. Параметры позволяют передавать в функцию данные. Следовательно, если функция предназначена для сложения двух чисел, то их необходимо передать в функцию как параметры. Вот как будет выглядеть заголовок возвращающей целочисленное значение функции Sum(), которой передаются два целых числа (first и second):

Int Sum(int first, int second).

Параметр – это объявление типа данных, передаваемых функции. Реальное значение, передаваемое при вызове функции, называется аргументом. Некоторые программисты рассматривают эти понятия как синонимы. Другие считают смешение терминов признаком непрофессионализма.

Тело функции состоит из открывающейся фигурной скобки, любого количества операторов и закрывающейся фигурной скобки. Функция может возвращать значение в программу при помощи оператора return. Этот оператор также означает выход из функции. Если не поместить в функцию оператор return, то по завершении функция автоматически возвратит значение типа void. Значение, возвращаемое функцией, должно иметь тип, объявленный в заголовке функции. Если функция, как и положено, возвращает значение, но оператора return не содержит, то некоторые компиляторы передают предупреждение или сообщение об ошибке.

В листинге 2.2 приведена функция, которая получает два целочисленных параметра и возвращает целочисленное значение.

Листинг 2.2. Пример простой функции

1: #include <iostream>

2: int Add (int first, int second)

3: {

4: std::cout << “In Add(), received “ <<first << “and” << second << std::endl;

5: return (first+second);

6: }

7:

8: int main()

9: {

10: using std::cout;

11: using std::cin;

12:

13: cout << “I am in main()!\n”;

14: int a, b, c;

15: cout << “Enter two numbers: “;

16: cin >> a;

17: cin >> b;

18: cout << “\nCalling Add()\n”;

19: c=Add(a, b);

20: cout << “\nBack in main().\n”;

21: cout << “c was set to “ << c;

22: cout << “\nExiting…\n\n”;

23: char response;

24: cin >> response;

25: return 0;

26: }

РЕЗУЛЬТАТ

I am in main()!

Enter two numbers: 3 5

Calling Add()

In Add(), received 3 and 5

Back in main()

C was set to 8

Exiting…