Функции. Объявление и определение функции. выполнение функции. Локальные и глобальные переменные C++. Аргументы функции — фактические и формальные. Перегрузка функций. Возвращаемые значения. Массивы
Функции.Использование функцийФункция по своей сути — это подпрограмма, которая может манипулировать данными и возвращать некоторое значение. Каждая программа имеет хотя бы дону программу — main(). Каждая функция обладает собственным именем, и если это имя встречается в программе, то управление переходит к телу этой функции. Этот процесс называют вызовом функции. По возвращению из функции выполнение программы продолжается со следующего за именем функции оператора. Различают два вида функций : встроенные и определённые пользователем. Встроенные функции являются составной частью пакета компилятора и предоставляются фирмой-изготовителем. Нестандартные функции разрабатываются программистом. Функции возвращают либо некоторое реальное значение либо некоторое значение типа void (то есть «ничего»). Функция так же может принимать некоторые значения, то есть иметь параметры. В общем виде объявление функции может иметь вид: int MyFunction(int some Value, float SameFloat); Вызов функции имеет вид: Rezult=MyFunction(12.4,4.7); Использование функций требует что бы функция была сначала объявлена, а потом определена. Объявление функции сообщает компилятору тип возвращаемого значения, тип параметров и как функция работает, и называется прототипом функции. Существуют три способы объявления функции:
Прототип функции имеет вид: Функции состоят из заголовка и тела. Заголовок содержит установки типа возвращаемого значения, имени и параметров функции. Параметры позволяют передавать в функцию значения. Пример: заголовок функции складывающей два числа. Параметр — это объвление типа данных значения, передаваемого в функцию.реальное значение, передаваемон при вызове функции называется аргументом функции. Тело функции начинается с фигурной скобки и содержит раяд строк, за которыми следует закрывающая фигурная скобка. ( если тело функции содержит какие-то другие фигурные скобки, то они должны быть парными). Функция может возвращать значение при помощи оператора возврата. #include <iostream.h> МакрофункцииИногда бывает полезно создать макроопределение с аргументами - макрофункцию. Макрофункция применяется там, где требуется произвести не очень сложные вычисления, и хороши тем, что они выполняются для любых типов данных (в отличие от обычных функций). Однако, следует быть очень внимательным с использованием аргументов, поскольку происходит всего лишь подстановка аргумента в строку замещения, после которой, возможно, появятся синтаксические и логические ошибки (связанные с приоритетами операций). Пример 3. /* текст программы до обработки препроцессором */ Перегрузка функцийВ языке С++ предусмотрена перегрузка функций, то есть функция с одним именем описана для разных типов параметров, с разными результатами, если написать функцию с разным результатом, но с одним списком параметров, то компилятор выдаст ошибку.) При вызове функции компилятор создаёт копию функции в памяти, выделяя под неё память, можно выиграть несколько в быстродействии, если использовать функцию, описанную так, что компилятор каждый раз подставляет её в программу , этого можно добиться, если описать функции inline. inline int Area(int,int); Возмоожны рекурсивные функции, то есть функции, вызывающие самое себя. Пример. #include <iostream.h> Результат: введите число Фибоначи = 6
Возврат более одного результатаВ языке С++ передача параметров в функцию может передаваться по адресу при помощи указателей. Делается это для возврата из функции нескольких значений, в этом случае связь с переменными, выступающими в качестве параметров, сохраняется и изменения их значений видны в вызывающей функцию программе. Пример. #include<iostream.h>
int main(void)
Та же самая программа написана при помощи ссылок, найдите отличия #include<iostream.h>
int main(void) |