- •6 Глава 1
- •12 Глава 1
- •14 Глава 1
- •16 Глава 1
- •18 Глава 1
- •20 Глава 1
- •22 Глава 1
- •24 Глава 1
- •26 Глава 1
- •31 Глава 1
- •34 Глава 2
- •36 Глава 2
- •Puc. 2.4. Дополнительные опции консольного приложения Win32
- •38 Глава 2
- •40 Глава 2
- •42 Глава 2
- •44 Глава 2
- •48 Глава 2
- •50 Глава 2
- •52 Глава 2
- •54 Глава 2
- •56 Глава 2
- •58 Глава 2
- •60 Глава 2
- •62 Глава 2
- •64 Глава 2
- •66 Глава 2
- •68 Глава 2
- •70 Глава 2
- •74 Глава 2
- •76 Глава 2
- •79 Глава 2
- •82 Глава 2
- •84 Глава 2
- •86 Глава 2
- •88 Глава 2
- •92 Глава 2
- •94 Глава 2
- •96 Глава 2
- •98 Глава 2
- •103 Глава 2
- •105 Глава 2
- •107 Глава 2
- •110 Глава 2
- •115 Глава 3
- •119 Глава 3
- •121 Глава 3
- •123 Глава 3
- •125 Глава 3
- •129 Глава 3
- •131 Глава 3
- •133 Глава 3
- •139 Глава 3
- •141 Глава 3
- •143 Глава 3
- •145 Глава 3
- •148 Глава 3
- •150 Глава 3
- •155 Глава 3
- •165 Глава 4
- •168 Глава 4
- •170 Глава 4
- •173 Глава 4
- •175 Глава 4
- •178 Глава 4
- •184 Глава 4
- •186 Глава 4
- •188 Глава 4
- •190 Глава 4
- •192 Глава 4
- •194 Глава 4
- •198 Глава 4
- •201 Глава 5
- •203 Глава 5
- •205 Глава 5
- •207 Глава 5
- •213 Глава 5
- •217 Глава 5
- •219 Глава 5
- •221 Глава 5
- •223 Глава 5
- •225 Глава 5
- •227 Глава 5
- •232 Глава 5
- •234 Глава 5
- •236 Глава 5
201 Глава 5
Что такое функции
Для начала рассмотрим общие принципы работы функций. Функция — это изоли- рованный блок кода, имеющий определенное специфическое назначение. Функция обладает именем, которое как идентифицирует ее, так и служит для вызова на вы- полнение внутри программы. Имя функции глобально, но не обязательно уникально в С++, как вы увидите это в следующей главе; однако функции, которые выполняют различные действия, обычно должны иметь разные имена.
Имена функций подчиняются тем же правилам, что и имена переменных. То есть имя функции — это последовательность букв и цифр, начинающаяся с буквы, причем знак подчеркивания тоже считается буквой. Имя функции должно обычно отражать то, что она делает, поэтому, например, вы можете назвать функцию, которая подсчи- тывает бобы,count_beans().
Вы передаете информацию функции с помощью аргументов, специфицированных при ее вызове. Эти аргументы должны соответствовать параметрам, появляющимся в определении функции. Когда функция выполняется, то указанные вами аргументы заменяют параметры, использованные в ее определении. Код функции выполняется так, как будто он был написан с применением значений ваших аргументов. На рис. 5.1 показаны отношения между аргументами при вызове функции и параметрами, специ- фицированными в ее определении.
Структурная
организация программ
В этом примере функция возвращает сумму двух переданных ей аргументов. В общем случае функция возвращает либо одно значение в точку программы, откуда она была вызвана, либо вообще ничего — в зависимости от того, как она определена. Можно подумать, что возврат единственного значения из функции ограничивает ее возможности, но это единственное значение может быть указателем, содержащим, например, адрес массива. Чуть позднее в этой главе вы узнаете подробнее о возврате данных из функции.
Зачем нужны функции?
Одно из главных преимуществ, предоставляемых функцией, состоит в том, что она может быть выполнена столько раз, сколько необходимо, в разных точках про- граммы. Без такой возможности упаковывать блоки кода в функции, программы были бы намного больше, поскольку тогда пришлось бы повторять один и тот же код вез- де, где он может понадобиться. Но реальная необходимость в функциях вызвана тем, чтобы можно было разбивать программу на легко управляемые фрагменты для неза- висимой разработки и тестирования.
Представьте себе действительно большую программу — скажем, в миллион строк кода. Программу такого размера практически невозможно написать без функций. Функции позволяют сегментировать программу так, что ее можно писать по частям, и тестировать каждую часть независимо, прежде чем соединять ее с прочими частями. Это также дает возможность распределить работу между членами команды разработ- чиков, где каждый член команды отвечает за четко определенную часть программы, с хорошо определенным функциональным интерфейсом для остального кода.
Структура функции
Как вы уже видели, когда писали функции main (), функция состоит из заголовка функции, который идентифицирует ее, а за ним следует тело функции, заключен- ное в фигурные скобки и содержащее ее исполняемый код. Рассмотрим пример. Попробуем написать функцию, которая будет возводить значение в заданную степень, то есть вычислять результат умножения значения х на себя п раз, что в математике записывается как хп.
Заголовок функции
Сначала рассмотрим в этом примере заголовок функции. Следующая строка — пер- вая строка функции:
Она состоит из трех частей, которые описаны ниже.
-
Тип возвращаемого значения (в данном случае — double).
-
Имя функции (в данном случае — power).